diff --git a/api-spec/openapiSpecv3-2_0.json b/api-spec/openapiSpecv3-2_0.json index 367af5c4c..7b633bb1e 100644 --- a/api-spec/openapiSpecv3-2_0.json +++ b/api-spec/openapiSpecv3-2_0.json @@ -21,6 +21,14 @@ ], "description": "Roles for version 10.4.0.cl" }, + { + "name": "10.15.0.cl", + "id": "10.15.0.cl", + "tags": [ + "10.15.0.cl" + ], + "description": "Roles for version 10.15.0.cl" + }, { "name": "10.7.0.cl", "id": "10.7.0.cl", @@ -393,6 +401,78 @@ } } }, + "/api/rest/2.0/ai/instructions/get": { + "post": { + "operationId": "getNLInstructions", + "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries.\n\n#### Usage guidelines\n\nTo retrieve NL instructions for a data-model, the request must include:\n- `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions\n\nThe API returns a response object with:\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for natural language processing\n - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future.\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported)\n\n> ###### Note:\n> * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Use this API to view currently configured instructions before modifying them with `setNLInstructions`.\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.15.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data_source_identifier": { + "description": "Unique ID or name of the data-model for which to retrieve NL instructions.", + "type": "string" + } + }, + "required": [ + "data_source_identifier" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_GetNLInstructionsResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_GetNLInstructionsResponse" + } + } + } + }, + "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/relevant-questions/": { "post": { "operationId": "getRelevantQuestions", @@ -861,6 +941,86 @@ } } }, + "/api/rest/2.0/ai/instructions/set": { + "post": { + "operationId": "setNLInstructions", + "description": "\nBeta Version: 10.15.0.cl or later\n\nThis API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses.\n\n#### Usage guidelines\n\nTo set NL instructions for a data-model, the request must include:\n- `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions\n- `nl_instructions_info`: An array of instruction objects, each containing:\n - `instructions`: Array of text instructions for the LLM\n - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future.\n\nThe API returns a response object with:\n- `success`: Boolean indicating whether the operation was successful\n\n#### Instructions Scope\n\n- **GLOBAL**: Instructions that apply globally for that data-model across the system\n\n> ###### Note:\n> * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists.\n> * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available.\n> * Available from version 10.15.0.cl and later.\n> * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n> * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model.\n\n\n\n\n#### Endpoint URL\n", + "tags": [ + "AI", + "10.15.0.cl" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data_source_identifier": { + "description": "Unique ID or name of the data-model for which to set NL instructions.", + "type": "string" + }, + "nl_instructions_info": { + "description": "List of NL instructions to set for the data-model.", + "type": "array", + "items": { + "$ref": "#/components/schemas/NLInstructionsInfoInput" + } + } + }, + "required": [ + "data_source_identifier", + "nl_instructions_info" + ] + } + } + }, + "required": true + }, + "parameters": [], + "responses": { + "200": { + "description": "Common successful response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_SetNLInstructionsResponse" + } + } + } + }, + "201": { + "description": "Common error response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/eureka_SetNLInstructionsResponse" + } + } + } + }, + "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/answer/create": { "post": { "operationId": "singleAnswer", @@ -1103,7 +1263,7 @@ "type": "string" }, "persist_option": { - "description": "Indicates whether the specified attributes should be persisted or not.", + "description": "Indicates whether the specified attributes should be persisted or not. RESET and NONE are not applicable if you are setting variable_values.", "type": "string", "enum": [ "REPLACE", @@ -1126,6 +1286,13 @@ "$ref": "#/components/schemas/ParameterValues" } }, + "variable_values": { + "description": "List of variable values where `name` references an existing formula variable and `values` is any value from the corresponding column.
Version: 10.14.0.cl or later", + "type": "array", + "items": { + "$ref": "#/components/schemas/VariableValues" + } + }, "objects": { "description": "Objects on which the filter rules and parameters values should be applied to", "type": "array", @@ -1149,7 +1316,7 @@ } }, "auto_create": { - "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required.
Version: 10.5.0.cl or later", + "description": " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key is required. New formula variables won't be created.
Version: 10.5.0.cl or later", "default": true, "type": "boolean", "nullable": true @@ -1279,6 +1446,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": [ @@ -1408,6 +1583,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": [ @@ -1872,7 +2055,7 @@ "/api/rest/2.0/connection-configurations/create": { "post": { "operationId": "createConnectionConfiguration", - "description": "\n Version: 10.12.0.cl or later\n\nCreates an additional configuration to an existing connection to a data warehouse. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Usage guidelines\n\n * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes:\n ```\n {\n \"user\":\"DEV_USER\",\n \"password\":\"TestConn123\",\n \"role\":\"DEV\",\n \"warehouse\":\"DEV_WH\"\n }\n ```\n\n* If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field.\n* If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field.\n* If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields.\n\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.12.0.cl or later\n\nCreates an additional configuration to an existing connection to a data warehouse. \n\nRequires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Usage guidelines\n\n * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes:\n ```\n {\n \"user\":\"DEV_USER\",\n \"password\":\"TestConn123\",\n \"role\":\"DEV\",\n \"warehouse\":\"DEV_WH\"\n }\n ```\n\n* If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field.\n* If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field.\n* If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields.\n\n#### Parameterized Connection Support\nFor parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized.\n\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -2088,7 +2271,7 @@ "/api/rest/2.0/connection-configurations/{configuration_identifier}/update": { "post": { "operationId": "updateConnectionConfiguration", - "description": "\n Version: 10.12.0.cl or later\n\nUpdates a connection configuration object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Supported operations\nThis API endpoint lets you perform the following operations in a single API request:\n\n * Edit the name or description of the configuration\n * Edit the configuration properties\n * Edit the `policy_type`\n * Edit the type of authentication\n * Enable or disable a configuration\n\n **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`.\n \n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 10.12.0.cl or later\n\nUpdates a connection configuration object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required.\n\n#### Supported operations\nThis API endpoint lets you perform the following operations in a single API request:\n\n * Edit the name or description of the configuration\n * Edit the configuration properties\n * Edit the `policy_type`\n * Edit the type of authentication\n * Enable or disable a configuration\n\n#### Parameterized Connection Support\nFor parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized.\n\n **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Connection Configurations", "10.12.0.cl" @@ -5072,7 +5255,7 @@ "/api/rest/2.0/customization/email": { "post": { "operationId": "createEmailCustomization", - "description": "\nBeta Version: 10.10.0.cl or later\n\nCreates a customization configuration for the notification email.\n\n#### Pre-requisites\n\nRequires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance.\n\n#### Usage guidelines\n\nTo create a custom configuration pass these parameters in your API request:\n\n- A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration:\n\n```\n{\n {\n \"ctaButtonBgColor\": \"#444DEA\",\n \"ctaTextFontColor\": \"#FFFFFF\",\n \"primaryBgColor\": \"#D3DEF0\",\n \"hideMobileAppNudge\": false,\n \"fontFamily\" : \"\",\n \"hideProductName\" : false,\n \"hideFooterPhone\" : false,\n \"hideFooterAddress\" : false,\n \"hidePrivacyPolicy\" : false,\n \"hideManageNotification\" : false,\n \"hideTsVocabularyDefinitions\": false,\n \"hideNotificationStatus\" : false,\n \"hideErrorMessage\": false,\n \"hideUnsubscribeLink\" : false,\n \"hideModifyAlert\": false,\n \"textTransform\": \"\",\n \"replacementValueForLiveboard\": \"LB dashboard\",\n \"replacementValueForAnswer\": \"Answer dashboard\",\n \"replacementValueForSpotIQ\": \"SpotIQ dashboard\",\n \"logoUrl\":\"\",\n \"productName\":\"ThoughtSpot\",\n \"footerPhone\":\"(800) 508-7008\",\n \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\",\n \"companyWebsiteUrl\":\"\",\n \"companyPrivacyPolicyUrl\":\"\"\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.10.0.cl or later\n\nCreates a customization configuration for the notification email.\n\n#### Pre-requisites\n\nRequires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance.\n\n#### Usage guidelines\n\nTo create a custom configuration pass these parameters in your API request:\n\n- A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration:\n\n```\n{\n {\n \"cta_button_bg_color\": \"#444DEA\",\n \t\"cta_text_font_color\": \"#FFFFFF\",\n \t\"primary_bg_color\": \"#D3DEF0\",\n \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\",\n \t \"font_family\": \"\",\n \t\"product_name\": \"ThoughtSpot\",\n \t\"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\",\n\t \"footer_phone\": \"(800) 508-7008\",\n \"replacement_value_for_liveboard\": \"Dashboard\",\n \t\"replacement_value_for_answer\": \"Chart\",\n \t\"replacement_value_for_spot_iq\": \"AI Insights\",\n \t \"hide_footer_phone\": false,\n \"hide_footer_address\": false,\n \"hide_product_name\": false,\n \t\"hide_manage_notification\": false,\n \t\"hide_mobile_app_nudge\": false,\n \t\"hide_privacy_policy\": false,\n \t\"hide_ts_vocabulary_definitions\": false,\n \t\"hide_error_message\": false,\n \t\"hide_unsubscribe_link\": false,\n \"hide_notification_status\": false,\n \t\"hide_modify_alert\": false,\n \t\"company_website_url\": \"https://your-website.com/\",\n \t\"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\",\n \"contact_support_url\": \"https://link-to-contact-support.com/\",\n \"hide_contact_support_url\": false\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.10.0.cl" @@ -5359,7 +5542,7 @@ "/api/rest/2.0/customization/email/update": { "post": { "operationId": "updateEmailCustomization", - "description": "\nBeta Version: 10.12.0.cl or later\n\nUpdates a customization configuration for the notification email.\n\n#### Pre-requisites\n\nRequires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance.\n\n#### Usage guidelines\n\nTo update a custom configuration pass these parameters in your API request:\n\n- A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration:\n\n```\n{\n {\n \"ctaButtonBgColor\": \"#444DEA\",\n \"ctaTextFontColor\": \"#FFFFFF\",\n \"primaryBgColor\": \"#D3DEF0\",\n \"hideMobileAppNudge\": false,\n \"fontFamily\" : \"\",\n \"hideProductName\" : false,\n \"hideFooterPhone\" : false,\n \"hideFooterAddress\" : false,\n \"hidePrivacyPolicy\" : false,\n \"hideManageNotification\" : false,\n \"hideTsVocabularyDefinitions\": false,\n \"hideNotificationStatus\" : false,\n \"hideErrorMessage\": false,\n \"hideUnsubscribeLink\" : false,\n \"hideModifyAlert\": false,\n \"textTransform\": \"\",\n \"replacementValueForLiveboard\": \"LB dashboard\",\n \"replacementValueForAnswer\": \"Answer dashboard\",\n \"replacementValueForSpotIQ\": \"SpotIQ dashboard\",\n \"logoUrl\":\"\",\n \"productName\":\"ThoughtSpot\",\n \"footerPhone\":\"(800) 508-7008\",\n \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\",\n \"companyWebsiteUrl\":\"\",\n \"companyPrivacyPolicyUrl\":\"\"\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", + "description": "\nBeta Version: 10.12.0.cl or later\n\nUpdates a customization configuration for the notification email.\n\n#### Pre-requisites\n\nRequires `DEVELOPER` (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `DEVELOPER` (**Has developer privilege**) privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance.\n\n#### Usage guidelines\n\nTo update a custom configuration pass these parameters in your API request:\n\n- A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration:\n\n```\n{\n {\n \"cta_button_bg_color\": \"#444DEA\",\n \t\"cta_text_font_color\": \"#FFFFFF\",\n \t\"primary_bg_color\": \"#D3DEF0\",\n \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\",\n \t \"font_family\": \"\",\n \t\"product_name\": \"ThoughtSpot\",\n \t\"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\",\n\t \"footer_phone\": \"(800) 508-7008\",\n \"replacement_value_for_liveboard\": \"Dashboard\",\n \t\"replacement_value_for_answer\": \"Chart\",\n \t\"replacement_value_for_spot_iq\": \"AI Insights\",\n \t \"hide_footer_phone\": false,\n \"hide_footer_address\": false,\n \"hide_product_name\": false,\n \t\"hide_manage_notification\": false,\n \t\"hide_mobile_app_nudge\": false,\n \t\"hide_privacy_policy\": false,\n \t\"hide_ts_vocabulary_definitions\": false,\n \t\"hide_error_message\": false,\n \t\"hide_unsubscribe_link\": false,\n \"hide_notification_status\": false,\n \t\"hide_modify_alert\": false,\n \t\"company_website_url\": \"https://your-website.com/\",\n \t\"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\",\n \"contact_support_url\": \"https://link-to-contact-support.com/\",\n \"hide_contact_support_url\": false\n }\n}\n```\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Email Customization", "10.12.0.cl" @@ -5550,6 +5733,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", @@ -5910,6 +6094,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -6118,6 +6303,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", @@ -7435,7 +7621,7 @@ "/api/rest/2.0/metadata/parameterize": { "post": { "operationId": "parameterizeMetadata", - "description": "\nParameterize fields in metadata objects.
Beta Version: 10.9.0.cl or later\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows parameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n\nFor a Logical Table the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this\ncase to specify the exact property of a connection which needs to be parameterized.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nParameterize fields in metadata objects.
Beta Version: 10.9.0.cl or later\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows parameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized.\n\nFor Connection Config, the only supported field name is:\n* impersonate_user\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.9.0.cl" @@ -7780,7 +7966,7 @@ "/api/rest/2.0/metadata/unparameterize": { "post": { "operationId": "unparameterizeMetadata", - "description": "\nRemove parameterization from fields in metadata objects.
Beta Version: 10.9.0.cl or later\n\nAllows removing parameterization from fields in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows unparameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n\nFor a Logical Table the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this\ncase to specify the exact property of a connection which needs to be unparameterized.\n\n\n\n\n#### Endpoint URL\n", + "description": "\nRemove parameterization from fields in metadata objects.
Beta Version: 10.9.0.cl or later\n\nAllows removing parameterization from fields in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions to modify the metadata object.\n\nThe API endpoint allows unparameterizing the following types of metadata objects:\n* Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized.\n\nFor Connection Config, the only supported field name is:\n* impersonate_user\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Metadata", "10.9.0.cl" @@ -8559,7 +8745,7 @@ "/api/rest/2.0/report/liveboard": { "post": { "operationId": "exportLiveboardReport", - "description": "\n Version: 9.0.0.cl or later\n\nExports a Liveboard and its visualizations in PDF or PNG file format.\n\nRequires at least view access to the Liveboard.\n\n#### Usage guidelines\n\nIn the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations.\n\nThe default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output.\n\n**NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n\nOptionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data.\n\nTo include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). \n\n**NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports.\n\n\n\n#### Endpoint URL\n", + "description": "\n Version: 9.0.0.cl or later\n\nExports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format.\n\nRequires at least view access to the Liveboard.\n\n#### Usage guidelines\n\nIn the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations.\n\nThe default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options.\n\n**NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension.\n\nOptionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data.\n\nTo include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). \n\n**NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports.\n\n**NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization.\n\n**NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook.\n\n\n\n\n#### Endpoint URL\n", "tags": [ "Reports", "9.0.0.cl" @@ -8764,6 +8950,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", + "CAN_MANAGE_VARIABLES", "CAN_MODIFY_FOLDERS", "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", @@ -8996,6 +9183,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "CAN_VIEW_FOLDERS", "CAN_MODIDY_FOLDERS", + "CAN_MANAGE_VARIABLES", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -9157,6 +9345,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "PREVIEW_THOUGHTSPOT_SAGE", @@ -12013,7 +12202,9 @@ "examples": { "example_1": { "value": { - "onboarding_content_url": "" + "onboarding_content_url": "", + "saml_enabled": false, + "okta_enabled": false } } } @@ -13868,6 +14059,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -14244,7 +14436,7 @@ "/api/rest/2.0/template/variables/create": { "post": { "operationId": "createVariable", - "description": "\nCreate a variable which can be used for parameterizing metadata objects
Beta Version: 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", + "description": "\nCreate a variable which can be used for parameterizing metadata objects
Beta Version: 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, introduced in 10.15.0.cl\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 formula 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.14.0.cl" @@ -14261,7 +14453,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ] }, "name": { @@ -14457,12 +14650,12 @@ "type": "integer", "format": "int32" }, - "output_format": { + "response_content": { "description": "Format in which we want the output", - "default": "METADATA_ONLY", + "default": "METADATA", "type": "string", "enum": [ - "METADATA_ONLY", + "METADATA", "METADATA_AND_VALUES" ] } @@ -19028,6 +19221,7 @@ "CAN_MANAGE_ANALYST_STUDIO", "CAN_VIEW_FOLDERS", "CAN_MODIDY_FOLDERS", + "CAN_MANAGE_VARIABLES", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", "CAN_MANAGE_WEBHOOKS", @@ -19567,6 +19761,44 @@ } } }, + "eureka_GetNLInstructionsResponse": { + "type": "object", + "required": [ + "nl_instructions_info" + ], + "properties": { + "nl_instructions_info": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NLInstructionsInfo" + }, + "description": "List of NL instructions with their scopes." + } + } + }, + "NLInstructionsInfo": { + "type": "object", + "required": [ + "instructions", + "scope" + ], + "properties": { + "instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User instructions for natural language processing." + }, + "scope": { + "type": "string", + "enum": [ + "GLOBAL" + ], + "description": "Scope of the instruction." + } + } + }, "RiseGQLArgWrapper": { "type": "object", "required": [ @@ -19595,7 +19827,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of variable", "nullable": true @@ -19658,7 +19891,8 @@ "enum": [ "CONNECTION_PROPERTY", "TABLE_MAPPING", - "CONNECTION_PROPERTY_PER_PRINCIPAL" + "CONNECTION_PROPERTY_PER_PRINCIPAL", + "FORMULA_VARIABLE" ], "description": "Type of the variable", "nullable": true @@ -20676,6 +20910,37 @@ }, "description": "Filter Rules to be applied on Objects." }, + "VariableValues": { + "type": "object", + "required": [ + "name", + "values" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the existing formula variable." + }, + "values": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + }, + "description": "The values to filter on." + } + }, + "description": "Variable values." + }, "TokenAccessScopeObject": { "type": "object", "required": [ @@ -21094,6 +21359,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "CAN_MODIFY_FOLDERS", + "CAN_MANAGE_VARIABLES", "CAN_VIEW_FOLDERS", "PREVIEW_DOCUMENT_SEARCH", "CAN_SETUP_VERSION_CONTROL", @@ -22084,6 +22350,7 @@ "CAN_ACCESS_ANALYST_STUDIO", "CAN_MANAGE_ANALYST_STUDIO", "PREVIEW_DOCUMENT_SEARCH", + "CAN_MANAGE_VARIABLES", "CAN_MODIFY_FOLDERS", "CAN_VIEW_FOLDERS", "CAN_SETUP_VERSION_CONTROL", @@ -23238,6 +23505,41 @@ } } }, + "NLInstructionsInfoInput": { + "type": "object", + "required": [ + "instructions", + "scope" + ], + "properties": { + "instructions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "User instructions for natural language processing." + }, + "scope": { + "type": "string", + "enum": [ + "GLOBAL" + ], + "description": "Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL." + } + } + }, + "eureka_SetNLInstructionsResponse": { + "type": "object", + "required": [ + "success" + ], + "properties": { + "success": { + "type": "boolean", + "description": "Success status of the operation." + } + } + }, "VariableUpdateAssignmentInput": { "type": "object", "required": [ @@ -23263,7 +23565,7 @@ "ADD", "REMOVE", "REPLACE", - "CLEAR" + "RESET" ], "description": "Operation to perform" } @@ -23733,4 +24035,4 @@ } } ] -} +} \ No newline at end of file diff --git a/sdks/java/README.md b/sdks/java/README.md index 7fc480fbc..2c82572c1 100644 --- a/sdks/java/README.md +++ b/sdks/java/README.md @@ -14,7 +14,7 @@ Add this dependency to your project's POM: com.thoughtspot rest-api-sdk - 2.19.0 + 2.20.0 compile ``` @@ -29,7 +29,7 @@ Add this dependency to your project's build file: } dependencies { - implementation "com.thoughtspot:rest-api-sdk:2.19.0" + implementation "com.thoughtspot:rest-api-sdk:2.20.0" } ``` diff --git a/sdks/java/api/openapi.yaml b/sdks/java/api/openapi.yaml index e43a25c6a..9a3266d40 100644 --- a/sdks/java/api/openapi.yaml +++ b/sdks/java/api/openapi.yaml @@ -190,6 +190,78 @@ paths: x-content-type: application/json x-accepts: - application/json + /api/rest/2.0/ai/instructions/get: + post: + description: |2+ + + Version: 10.15.0.cl or later + + + This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. + + #### Usage guidelines + + To retrieve NL instructions for a data-model, the request must include: + - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions + + The API returns a response object with: + - `nl_instructions_info`: An array of instruction objects, each containing: + - `instructions`: Array of text instructions for natural language processing + - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. + + #### Instructions Scope + + - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) + + > ###### Note: + > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. + > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. + > * Available from version 10.15.0.cl and later. + > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. + > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + + + + + operationId: getNLInstructions + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/getNLInstructions_request' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/eureka_GetNLInstructionsResponse' + description: Common successful response + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/eureka_GetNLInstructionsResponse' + 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/relevant-questions/: post: description: |2+ @@ -509,6 +581,80 @@ paths: x-content-type: application/json x-accepts: - application/json + /api/rest/2.0/ai/instructions/set: + post: + description: |2+ + + Version: 10.15.0.cl or later + + + This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. + + #### Usage guidelines + + To set NL instructions for a data-model, the request must include: + - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions + - `nl_instructions_info`: An array of instruction objects, each containing: + - `instructions`: Array of text instructions for the LLM + - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + + The API returns a response object with: + - `success`: Boolean indicating whether the operation was successful + + #### Instructions Scope + + - **GLOBAL**: Instructions that apply globally for that data-model across the system + + > ###### Note: + > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. + > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. + > * Available from version 10.15.0.cl and later. + > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. + > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + + + + + + operationId: setNLInstructions + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/setNLInstructions_request' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/eureka_SetNLInstructionsResponse' + description: Common successful response + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/eureka_SetNLInstructionsResponse' + 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/answer/create: post: description: |2+ @@ -1265,7 +1411,10 @@ paths: \ `PRINCIPALS`, then `policy_principals` is a required field.\n* If the `policy_type`\ \ is `PROCESSES`, then `policy_processes` is a required field.\n* If the `policy_type`\ \ is `NO_POLICY`, then `policy_principals` and `policy_processes` are not\ - \ required fields.\n\n\n\n\n\n" + \ required fields.\n\n#### Parameterized Connection Support\nFor parameterized\ + \ connections that use OAuth authentication, only the same_as_parent and policy_process_options\ + \ attributes are allowed in the API request. These attributes are not applicable\ + \ to connections that are not parameterized.\n\n\n\n\n\n\n" operationId: createConnectionConfiguration parameters: [] requestBody: @@ -1371,19 +1520,35 @@ paths: - application/json /api/rest/2.0/connection-configurations/{configuration_identifier}/update: post: - description: "\n Version: 10.12.0.cl or later\n\n\nUpdates a connection configuration\ - \ object.\n\nRequires `DATAMANAGEMENT` (**Can manage data**) and edit permissions\ - \ to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**)\ - \ privilege.\n\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac)\ - \ is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can\ - \ create/edit Connections**) privilege is required.\n\n#### Supported operations\n\ - This API endpoint lets you perform the following operations in a single API\ - \ request:\n\n * Edit the name or description of the configuration\n * Edit\ - \ the configuration properties\n * Edit the `policy_type`\n * Edit the type\ - \ of authentication\n * Enable or disable a configuration\n\n **NOTE**: When\ - \ updating a configuration where `disabled` is `true`, you must reset `disabled`\ - \ to `true` in your update request payload. If not explicitly set again, the\ - \ API will default `disabled` to `false`.\n \n\n\n\n\n" + description: |2+ + + Version: 10.12.0.cl or later + + + Updates a connection configuration 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. + + #### Supported operations + This API endpoint lets you perform the following operations in a single API request: + + * Edit the name or description of the configuration + * Edit the configuration properties + * Edit the `policy_type` + * Edit the type of authentication + * Enable or disable a configuration + + #### Parameterized Connection Support + For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. + + **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + + + + + operationId: updateConnectionConfiguration parameters: - description: Unique ID or name of the configuration. @@ -3332,62 +3497,33 @@ paths: - application/json /api/rest/2.0/customization/email: post: - description: |2+ - - Version: 10.10.0.cl or later - - - Creates a customization configuration for the notification email. - - #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - - **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. - - #### Usage guidelines - - To create a custom configuration pass these parameters in your API request: - - - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: - - ``` - { - { - "ctaButtonBgColor": "#444DEA", - "ctaTextFontColor": "#FFFFFF", - "primaryBgColor": "#D3DEF0", - "hideMobileAppNudge": false, - "fontFamily" : "", - "hideProductName" : false, - "hideFooterPhone" : false, - "hideFooterAddress" : false, - "hidePrivacyPolicy" : false, - "hideManageNotification" : false, - "hideTsVocabularyDefinitions": false, - "hideNotificationStatus" : false, - "hideErrorMessage": false, - "hideUnsubscribeLink" : false, - "hideModifyAlert": false, - "textTransform": "", - "replacementValueForLiveboard": "LB dashboard", - "replacementValueForAnswer": "Answer dashboard", - "replacementValueForSpotIQ": "SpotIQ dashboard", - "logoUrl":"", - "productName":"ThoughtSpot", - "footerPhone":"(800) 508-7008", - "footerAddress":"444 Castro St, Suite 1000 Mountain View, CA 94041", - "companyWebsiteUrl":"", - "companyPrivacyPolicyUrl":"" - } - } - ``` - - - - - + description: "\nVersion: 10.10.0.cl or later\n\n\nCreates a customization configuration\ + \ for the notification email.\n\n#### Pre-requisites\n\nRequires `DEVELOPER`\ + \ (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**)\ + \ privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac)\ + \ is enabled on your instance, the `DEVELOPER` (**Has developer privilege**)\ + \ privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact\ + \ ThoughtSpot support to enable this on your instance.\n\n#### Usage guidelines\n\ + \nTo create a custom configuration pass these parameters in your API request:\n\ + \n- A JSON map of configuration attributes `template_properties`. The following\ + \ example shows a sample set of customization configuration:\n\n```\n{\n \ + \ {\n \"cta_button_bg_color\": \"#444DEA\",\n \t\"cta_text_font_color\"\ + : \"#FFFFFF\",\n \t\"primary_bg_color\": \"#D3DEF0\",\n \"logo_url\"\ + : \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\"\ + ,\n \t \"font_family\": \"\",\n \t\"product_name\": \"ThoughtSpot\",\n\ + \ \t\"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\"\ + ,\n\t \"footer_phone\": \"(800) 508-7008\",\n \"replacement_value_for_liveboard\"\ + : \"Dashboard\",\n \t\"replacement_value_for_answer\": \"Chart\",\n \ + \ \t\"replacement_value_for_spot_iq\": \"AI Insights\",\n \t \"hide_footer_phone\"\ + : false,\n \"hide_footer_address\": false,\n \"hide_product_name\"\ + : false,\n \t\"hide_manage_notification\": false,\n \t\"hide_mobile_app_nudge\"\ + : false,\n \t\"hide_privacy_policy\": false,\n \t\"hide_ts_vocabulary_definitions\"\ + : false,\n \t\"hide_error_message\": false,\n \t\"hide_unsubscribe_link\"\ + : false,\n \"hide_notification_status\": false,\n \t\"hide_modify_alert\"\ + : false,\n \t\"company_website_url\": \"https://your-website.com/\",\n\ + \ \t\"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\"\ + ,\n \"contact_support_url\": \"https://link-to-contact-support.com/\"\ + ,\n \"hide_contact_support_url\": false\n }\n}\n```\n\n\n\n\n\n" operationId: createEmailCustomization parameters: [] requestBody: @@ -3618,62 +3754,33 @@ paths: - application/json /api/rest/2.0/customization/email/update: post: - description: |2+ - - Version: 10.12.0.cl or later - - - Updates a customization configuration for the notification email. - - #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - - **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. - - #### Usage guidelines - - To update a custom configuration pass these parameters in your API request: - - - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: - - ``` - { - { - "ctaButtonBgColor": "#444DEA", - "ctaTextFontColor": "#FFFFFF", - "primaryBgColor": "#D3DEF0", - "hideMobileAppNudge": false, - "fontFamily" : "", - "hideProductName" : false, - "hideFooterPhone" : false, - "hideFooterAddress" : false, - "hidePrivacyPolicy" : false, - "hideManageNotification" : false, - "hideTsVocabularyDefinitions": false, - "hideNotificationStatus" : false, - "hideErrorMessage": false, - "hideUnsubscribeLink" : false, - "hideModifyAlert": false, - "textTransform": "", - "replacementValueForLiveboard": "LB dashboard", - "replacementValueForAnswer": "Answer dashboard", - "replacementValueForSpotIQ": "SpotIQ dashboard", - "logoUrl":"", - "productName":"ThoughtSpot", - "footerPhone":"(800) 508-7008", - "footerAddress":"444 Castro St, Suite 1000 Mountain View, CA 94041", - "companyWebsiteUrl":"", - "companyPrivacyPolicyUrl":"" - } - } - ``` - - - - - + description: "\nVersion: 10.12.0.cl or later\n\n\nUpdates a customization configuration\ + \ for the notification email.\n\n#### Pre-requisites\n\nRequires `DEVELOPER`\ + \ (**has developer privilege**) or `ADMINISTRATION` (**Can administer ThoughtSpot**)\ + \ privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac)\ + \ is enabled on your instance, the `DEVELOPER` (**Has developer privilege**)\ + \ privilege is required.\n\n**NOTE**:This endpoint in currently in beta. Contact\ + \ ThoughtSpot support to enable this on your instance.\n\n#### Usage guidelines\n\ + \nTo update a custom configuration pass these parameters in your API request:\n\ + \n- A JSON map of configuration attributes `template_properties`. The following\ + \ example shows a sample set of customization configuration:\n\n```\n{\n \ + \ {\n \"cta_button_bg_color\": \"#444DEA\",\n \t\"cta_text_font_color\"\ + : \"#FFFFFF\",\n \t\"primary_bg_color\": \"#D3DEF0\",\n \"logo_url\"\ + : \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\"\ + ,\n \t \"font_family\": \"\",\n \t\"product_name\": \"ThoughtSpot\",\n\ + \ \t\"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\"\ + ,\n\t \"footer_phone\": \"(800) 508-7008\",\n \"replacement_value_for_liveboard\"\ + : \"Dashboard\",\n \t\"replacement_value_for_answer\": \"Chart\",\n \ + \ \t\"replacement_value_for_spot_iq\": \"AI Insights\",\n \t \"hide_footer_phone\"\ + : false,\n \"hide_footer_address\": false,\n \"hide_product_name\"\ + : false,\n \t\"hide_manage_notification\": false,\n \t\"hide_mobile_app_nudge\"\ + : false,\n \t\"hide_privacy_policy\": false,\n \t\"hide_ts_vocabulary_definitions\"\ + : false,\n \t\"hide_error_message\": false,\n \t\"hide_unsubscribe_link\"\ + : false,\n \"hide_notification_status\": false,\n \t\"hide_modify_alert\"\ + : false,\n \t\"company_website_url\": \"https://your-website.com/\",\n\ + \ \t\"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\"\ + ,\n \"contact_support_url\": \"https://link-to-contact-support.com/\"\ + ,\n \"hide_contact_support_url\": false\n }\n}\n```\n\n\n\n\n\n" operationId: updateEmailCustomization parameters: [] requestBody: @@ -4865,11 +4972,13 @@ paths: \ or later\n\n\nAllows parameterizing fields in metadata objects in ThoughtSpot.\n\ \nRequires appropriate permissions to modify the metadata object.\n\nThe API\ \ endpoint allows parameterizing the following types of metadata objects:\n\ - * Logical Tables\n* Connections\n\nFor a Logical Table the field type must\ - \ be `ATTRIBUTE` and field name can be one of:\n* databaseName\n* schemaName\n\ - * tableName\n\nFor a Connection the field type is always `CONNECTION_PROPERTY`.\ - \ We use the field_name in this\ncase to specify the exact property of a connection\ - \ which needs to be parameterized.\n\n\n\n\n\n" + * Logical Tables\n* Connections\n* Connection Configs\n\nFor a Logical Table\ + \ the field type must be `ATTRIBUTE` and field name can be one of:\n* databaseName\n\ + * schemaName\n* tableName\n\nFor a Connection or Connection Config, the field\ + \ type is always `CONNECTION_PROPERTY`. In this case, field_name specifies\ + \ the exact property of the Connection or Connection Config that needs to\ + \ be parameterized.\n\nFor Connection Config, the only supported field name\ + \ is:\n* impersonate_user\n\n\n\n\n\n" operationId: parameterizeMetadata parameters: [] requestBody: @@ -5007,11 +5116,12 @@ paths: \ in metadata objects in ThoughtSpot.\n\nRequires appropriate permissions\ \ to modify the metadata object.\n\nThe API endpoint allows unparameterizing\ \ the following types of metadata objects:\n* Logical Tables\n* Connections\n\ - \nFor a Logical Table the field type must be `ATTRIBUTE` and field name can\ - \ be one of:\n* databaseName\n* schemaName\n* tableName\n\nFor a Connection\ - \ the field type is always `CONNECTION_PROPERTY`. We use the field_name in\ - \ this\ncase to specify the exact property of a connection which needs to\ - \ be unparameterized.\n\n\n\n\n\n" + * Connection Configs\n\nFor a Logical Table the field type must be `ATTRIBUTE`\ + \ and field name can be one of:\n* databaseName\n* schemaName\n* tableName\n\ + \nFor a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`.\ + \ In this case, field_name specifies the exact property of the Connection\ + \ or Connection Config that needs to be unparameterized.\n\nFor Connection\ + \ Config, the only supported field name is:\n* impersonate_user\n\n\n\n\n\n" operationId: unparameterizeMetadata parameters: [] requestBody: @@ -5543,17 +5653,17 @@ paths: /api/rest/2.0/report/liveboard: post: description: "\n Version: 9.0.0.cl or later\n\n\nExports a Liveboard and its\ - \ visualizations in PDF or PNG file format.\n\nRequires at least view access\ - \ to the Liveboard.\n\n#### Usage guidelines\n\nIn the request body, specify\ - \ the GUID or name of the Liveboard. To generate a Liveboard report with specific\ - \ visualizations, add GUIDs or names of the visualizations.\n\nThe default\ - \ `file_format` is PDF. For PDF downloads, you can specify additional parameters\ - \ to customize the page orientation and include or exclude the cover page,\ - \ logo, footer text, and page numbers. Similar customization options are also\ - \ available for PNG output.\n\n**NOTE**: The downloadable file returned in\ - \ API response file is extensionless. Please rename the downloaded file by\ - \ typing in the relevant extension.\n\nOptionally, you can define [runtime\ - \ overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides)\ + \ visualizations in PDF, PNG, CSV, or XLSX file format.\n\nRequires at least\ + \ view access to the Liveboard.\n\n#### Usage guidelines\n\nIn the request\ + \ body, specify the GUID or name of the Liveboard. To generate a Liveboard\ + \ report with specific visualizations, add GUIDs or names of the visualizations.\n\ + \nThe default `file_format` is CSV. For PDF exports, you can specify additional\ + \ parameters to customize the page orientation and include or exclude the\ + \ cover page, logo, footer text, and page numbers. Similar customization options\ + \ are available for PNG exports. CSV and XLSX exports do not support customization\ + \ options.\n\n**NOTE**: The downloadable file returned in API response file\ + \ is extensionless. Please rename the downloaded file by typing in the relevant\ + \ extension.\n\nOptionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides)\ \ to apply to the Answer data.\n\nTo include unsaved changes in the report,\ \ pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard`\ \ method in the Visual Embed SDK. Upon successful execution, the API returns\ @@ -5563,7 +5673,16 @@ paths: \ can be exported in the PNG format in the resolution of your choice. To enable\ \ this on your instance, contact ThoughtSpot support. When this feature is\ \ enabled, the options `include_cover_page`,`include_filter_page` within the\ - \ `png_options` will not be available for PNG exports.\n\n\n\n\n" + \ `png_options` will not be available for PNG exports.\n\n**NOTE**: Starting\ + \ with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported\ + \ in CSV format. All visualizations in the Liveboard can be exported as individual\ + \ CSV files. If multiple visualizations are selected or if the entire Liveboard\ + \ is exported, the output is returned as a .zip file containing the CSV files\ + \ for each visualization.\n\n**NOTE**: Starting with the ThoughtSpot Cloud\ + \ 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected\ + \ visualizations are consolidated into a single Excel workbook (.xlsx), with\ + \ each visualization placed in its own worksheet (tab). XLSX exports are limited\ + \ to 255 worksheets (tabs) per workbook.\n\n\n\n\n\n" operationId: exportLiveboardReport parameters: [] requestBody: @@ -6787,6 +6906,8 @@ paths: example_1: value: onboarding_content_url: "" + saml_enabled: false + okta_enabled: false schema: $ref: '#/components/schemas/SystemConfig' description: Cluster config information. @@ -8100,13 +8221,13 @@ paths: \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\ - \ 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\n" + \ support to enable this.\n* FORMULA_VARIABLE - For Formula variables, introduced\ + \ in 10.15.0.cl\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 formula 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\n" operationId: createVariable parameters: [] requestBody: @@ -12722,6 +12843,7 @@ components: - CAN_MANAGE_ANALYST_STUDIO - CAN_VIEW_FOLDERS - CAN_MODIDY_FOLDERS + - CAN_MANAGE_VARIABLES - PREVIEW_DOCUMENT_SEARCH - CAN_SETUP_VERSION_CONTROL - CAN_MANAGE_WEBHOOKS @@ -13314,6 +13436,47 @@ components: nullable: true type: string type: object + eureka_GetNLInstructionsResponse: + example: + nl_instructions_info: + - instructions: + - instructions + - instructions + scope: GLOBAL + - instructions: + - instructions + - instructions + scope: GLOBAL + properties: + nl_instructions_info: + description: List of NL instructions with their scopes. + items: + $ref: '#/components/schemas/NLInstructionsInfo' + type: array + required: + - nl_instructions_info + type: object + NLInstructionsInfo: + example: + instructions: + - instructions + - instructions + scope: GLOBAL + properties: + instructions: + description: User instructions for natural language processing. + items: + type: string + type: array + scope: + description: Scope of the instruction. + enum: + - GLOBAL + type: string + required: + - instructions + - scope + type: object RiseGQLArgWrapper: properties: name: @@ -13337,6 +13500,7 @@ components: - CONNECTION_PROPERTY - TABLE_MAPPING - CONNECTION_PROPERTY_PER_PRINCIPAL + - FORMULA_VARIABLE nullable: true type: string name_pattern: @@ -13405,6 +13569,7 @@ components: - CONNECTION_PROPERTY - TABLE_MAPPING - CONNECTION_PROPERTY_PER_PRINCIPAL + - FORMULA_VARIABLE nullable: true type: string sensitive: @@ -14395,6 +14560,21 @@ components: - name - values type: object + VariableValues: + description: Variable values. + properties: + name: + description: The name of the existing formula variable. + type: string + values: + description: The values to filter on. + items: + type: object + type: array + required: + - name + - values + type: object TokenAccessScopeObject: description: Objects on which the filter rules and parameters values should be applied to @@ -14763,6 +14943,7 @@ components: - CAN_ACCESS_ANALYST_STUDIO - CAN_MANAGE_ANALYST_STUDIO - CAN_MODIFY_FOLDERS + - CAN_MANAGE_VARIABLES - CAN_VIEW_FOLDERS - PREVIEW_DOCUMENT_SEARCH - CAN_SETUP_VERSION_CONTROL @@ -15745,6 +15926,7 @@ components: - CAN_ACCESS_ANALYST_STUDIO - CAN_MANAGE_ANALYST_STUDIO - PREVIEW_DOCUMENT_SEARCH + - CAN_MANAGE_VARIABLES - CAN_MODIFY_FOLDERS - CAN_VIEW_FOLDERS - CAN_SETUP_VERSION_CONTROL @@ -16750,6 +16932,32 @@ components: required: - success type: object + NLInstructionsInfoInput: + properties: + instructions: + description: User instructions for natural language processing. + items: + type: string + type: array + scope: + description: Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. + enum: + - GLOBAL + type: string + required: + - instructions + - scope + type: object + eureka_SetNLInstructionsResponse: + example: + success: true + properties: + success: + description: Success status of the operation. + type: boolean + required: + - success + type: object VariableUpdateAssignmentInput: description: Input for variable value update in batch operations properties: @@ -16767,7 +16975,7 @@ components: - ADD - REMOVE - REPLACE - - CLEAR + - RESET type: string required: - operation @@ -17231,6 +17439,15 @@ components: required: - query type: object + getNLInstructions_request: + properties: + data_source_identifier: + description: Unique ID or name of the data-model for which to retrieve NL + instructions. + type: string + required: + - data_source_identifier + type: object getRelevantQuestions_request: properties: metadata_context: @@ -17339,6 +17556,20 @@ components: - message - metadata_identifier type: object + setNLInstructions_request: + properties: + data_source_identifier: + description: Unique ID or name of the data-model for which to set NL instructions. + type: string + nl_instructions_info: + description: List of NL instructions to set for the data-model. + items: + $ref: '#/components/schemas/NLInstructionsInfoInput' + type: array + required: + - data_source_identifier + - nl_instructions_info + type: object singleAnswer_request: properties: query: @@ -17382,7 +17613,7 @@ components: type: string persist_option: description: Indicates whether the specified attributes should be persisted - or not. + or not. RESET and NONE are not applicable if you are setting variable_values. enum: - REPLACE - APPEND @@ -17399,6 +17630,13 @@ components: items: $ref: '#/components/schemas/ParameterValues' type: array + variable_values: + description: "List of variable values where `name` references an existing\ + \ formula variable and `values` is any value from the corresponding column.\ + \ \n Version: 10.14.0.cl or later\n" + items: + $ref: '#/components/schemas/VariableValues' + type: array objects: description: Objects on which the filter rules and parameters values should be applied to @@ -17425,7 +17663,8 @@ components: description: " 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.\n \n\nNote: For JIT provisioning of a user, the secret_key\ - \ is required. \n Version: 10.5.0.cl or later\n" + \ is required. New formula variables won't be created. \n Version: 10.5.0.cl\ + \ or later\n" nullable: true type: boolean required: @@ -18672,6 +18911,7 @@ components: - CAN_ACCESS_ANALYST_STUDIO - CAN_MANAGE_ANALYST_STUDIO - CAN_MODIFY_FOLDERS + - CAN_MANAGE_VARIABLES - CAN_VIEW_FOLDERS - PREVIEW_DOCUMENT_SEARCH - CAN_SETUP_VERSION_CONTROL @@ -18804,6 +19044,7 @@ components: - CAN_MANAGE_ANALYST_STUDIO - PREVIEW_DOCUMENT_SEARCH - CAN_MODIFY_FOLDERS + - CAN_MANAGE_VARIABLES - CAN_VIEW_FOLDERS - CAN_SETUP_VERSION_CONTROL - CAN_MANAGE_WEBHOOKS @@ -18924,6 +19165,7 @@ components: - CAN_ACCESS_ANALYST_STUDIO - CAN_MANAGE_ANALYST_STUDIO - CAN_MODIFY_FOLDERS + - CAN_MANAGE_VARIABLES - CAN_VIEW_FOLDERS - PREVIEW_DOCUMENT_SEARCH - CAN_SETUP_VERSION_CONTROL @@ -19815,6 +20057,7 @@ components: - CAN_ACCESS_ANALYST_STUDIO - CAN_MANAGE_ANALYST_STUDIO - PREVIEW_DOCUMENT_SEARCH + - CAN_MANAGE_VARIABLES - CAN_MODIFY_FOLDERS - CAN_VIEW_FOLDERS - CAN_SETUP_VERSION_CONTROL @@ -19903,6 +20146,7 @@ components: - CAN_MANAGE_ANALYST_STUDIO - CAN_VIEW_FOLDERS - CAN_MODIDY_FOLDERS + - CAN_MANAGE_VARIABLES - PREVIEW_DOCUMENT_SEARCH - CAN_SETUP_VERSION_CONTROL - CAN_MANAGE_WEBHOOKS @@ -19979,6 +20223,7 @@ components: - CAN_ACCESS_ANALYST_STUDIO - CAN_MANAGE_ANALYST_STUDIO - CAN_MODIFY_FOLDERS + - CAN_MANAGE_VARIABLES - CAN_VIEW_FOLDERS - PREVIEW_DOCUMENT_SEARCH - PREVIEW_THOUGHTSPOT_SAGE @@ -22031,6 +22276,7 @@ components: - CAN_MANAGE_ANALYST_STUDIO - PREVIEW_DOCUMENT_SEARCH - CAN_MODIFY_FOLDERS + - CAN_MANAGE_VARIABLES - CAN_VIEW_FOLDERS - CAN_SETUP_VERSION_CONTROL - CAN_MANAGE_WEBHOOKS @@ -22238,6 +22484,7 @@ components: - CONNECTION_PROPERTY - TABLE_MAPPING - CONNECTION_PROPERTY_PER_PRINCIPAL + - FORMULA_VARIABLE type: string name: description: Name of the variable. This is unique across the cluster. @@ -22284,11 +22531,11 @@ components: description: The number of records that should be included format: int32 type: integer - output_format: - default: METADATA_ONLY + response_content: + default: METADATA description: Format in which we want the output enum: - - METADATA_ONLY + - METADATA - METADATA_AND_VALUES type: string type: object @@ -22667,6 +22914,11 @@ x-roles: tags: - 10.4.0.cl description: Roles for version 10.4.0.cl +- name: 10.15.0.cl + id: 10.15.0.cl + tags: + - 10.15.0.cl + description: Roles for version 10.15.0.cl - name: 10.7.0.cl id: 10.7.0.cl tags: diff --git a/sdks/java/build.gradle b/sdks/java/build.gradle index c560e39c8..2fa930c95 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.19.0' +version = '2.20.0' buildscript { repositories { diff --git a/sdks/java/build.sbt b/sdks/java/build.sbt index 76f597434..e52069f53 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.19.0", + version := "2.20.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 4318afae1..97545be0e 100644 --- a/sdks/java/docs/AiApi.md +++ b/sdks/java/docs/AiApi.md @@ -7,11 +7,13 @@ All URIs are relative to *CLUSTER_URL* | [**createAgentConversation**](AiApi.md#createAgentConversation) | **POST** /api/rest/2.0/ai/agent/conversation/create | | [**createConversation**](AiApi.md#createConversation) | **POST** /api/rest/2.0/ai/conversation/create | | [**getDataSourceSuggestions**](AiApi.md#getDataSourceSuggestions) | **POST** /api/rest/2.0/ai/data-source-suggestions | +| [**getNLInstructions**](AiApi.md#getNLInstructions) | **POST** /api/rest/2.0/ai/instructions/get | | [**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 | +| [**setNLInstructions**](AiApi.md#setNLInstructions) | **POST** /api/rest/2.0/ai/instructions/set | | [**singleAnswer**](AiApi.md#singleAnswer) | **POST** /api/rest/2.0/ai/answer/create | @@ -120,6 +122,41 @@ Version: 10.13.0.cl or later | **400** | Operation failed | - | | **500** | Operation failed | - | + +# **getNLInstructions** +> EurekaGetNLInstructionsResponse getNLInstructions(getNLInstructionsRequest) + + + + Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + +### Parameters + +| Name | Type | +|------------- | ------------- | +| **getNLInstructionsRequest** | [**GetNLInstructionsRequest**](GetNLInstructionsRequest.md) + +### Return type + +[**EurekaGetNLInstructionsResponse**](EurekaGetNLInstructionsResponse.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** | Common successful response | - | +| **201** | Common error response | - | +| **400** | Operation failed | - | +| **500** | Operation failed | - | + # **getRelevantQuestions** > EurekaGetRelevantQuestionsResponse getRelevantQuestions(getRelevantQuestionsRequest) @@ -297,6 +334,41 @@ Version: 10.7.0.cl or later | **400** | Operation failed | - | | **500** | Operation failed | - | + +# **setNLInstructions** +> EurekaSetNLInstructionsResponse setNLInstructions(setNLInstructionsRequest) + + + + Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + +### Parameters + +| Name | Type | +|------------- | ------------- | +| **setNLInstructionsRequest** | [**SetNLInstructionsRequest**](SetNLInstructionsRequest.md) + +### Return type + +[**EurekaSetNLInstructionsResponse**](EurekaSetNLInstructionsResponse.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** | Common successful response | - | +| **201** | Common error response | - | +| **400** | Operation failed | - | +| **500** | Operation failed | - | + # **singleAnswer** > ResponseMessage singleAnswer(singleAnswerRequest) diff --git a/sdks/java/docs/ConnectionConfigurationsApi.md b/sdks/java/docs/ConnectionConfigurationsApi.md index fc5d4198a..8ae911d60 100644 --- a/sdks/java/docs/ConnectionConfigurationsApi.md +++ b/sdks/java/docs/ConnectionConfigurationsApi.md @@ -52,7 +52,7 @@ All URIs are relative to *CLUSTER_URL* - Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. ### Parameters @@ -124,7 +124,7 @@ null (empty response body) - Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. ### 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 4ba139579..1e4eb8e4b 100644 --- a/sdks/java/docs/CreateRoleRequest.md +++ b/sdks/java/docs/CreateRoleRequest.md @@ -49,6 +49,7 @@ | CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" | | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | diff --git a/sdks/java/docs/CreateUserGroupRequest.md b/sdks/java/docs/CreateUserGroupRequest.md index a5713bcdd..c7f5ce82e 100644 --- a/sdks/java/docs/CreateUserGroupRequest.md +++ b/sdks/java/docs/CreateUserGroupRequest.md @@ -50,6 +50,7 @@ | CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" | | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | diff --git a/sdks/java/docs/CreateVariableRequest.md b/sdks/java/docs/CreateVariableRequest.md index 603d6221c..8c75940e7 100644 --- a/sdks/java/docs/CreateVariableRequest.md +++ b/sdks/java/docs/CreateVariableRequest.md @@ -21,6 +21,7 @@ | CONNECTION_PROPERTY | "CONNECTION_PROPERTY" | | TABLE_MAPPING | "TABLE_MAPPING" | | CONNECTION_PROPERTY_PER_PRINCIPAL | "CONNECTION_PROPERTY_PER_PRINCIPAL" | +| FORMULA_VARIABLE | "FORMULA_VARIABLE" | 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/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/EmailCustomizationApi.md b/sdks/java/docs/EmailCustomizationApi.md index 1590dacff..f821267da 100644 --- a/sdks/java/docs/EmailCustomizationApi.md +++ b/sdks/java/docs/EmailCustomizationApi.md @@ -18,7 +18,7 @@ All URIs are relative to *CLUSTER_URL* - Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Parameters @@ -159,7 +159,7 @@ null (empty response body) - Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Parameters diff --git a/sdks/java/docs/EurekaGetNLInstructionsResponse.md b/sdks/java/docs/EurekaGetNLInstructionsResponse.md new file mode 100644 index 000000000..2fb5f6a5f --- /dev/null +++ b/sdks/java/docs/EurekaGetNLInstructionsResponse.md @@ -0,0 +1,17 @@ + + +# EurekaGetNLInstructionsResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**nlInstructionsInfo** | [**List<NLInstructionsInfo>**](NLInstructionsInfo.md) | List of NL instructions with their scopes. | | + + +## Implemented Interfaces + +* Serializable + + diff --git a/sdks/java/docs/CreateEmailCustomisationRequest.md b/sdks/java/docs/EurekaSetNLInstructionsResponse.md similarity index 56% rename from sdks/java/docs/CreateEmailCustomisationRequest.md rename to sdks/java/docs/EurekaSetNLInstructionsResponse.md index fa3492e91..5d256d873 100644 --- a/sdks/java/docs/CreateEmailCustomisationRequest.md +++ b/sdks/java/docs/EurekaSetNLInstructionsResponse.md @@ -1,13 +1,13 @@ -# CreateEmailCustomisationRequest +# EurekaSetNLInstructionsResponse ## Properties | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**templateProperties** | **Object** | Email customization configuration as key value pair | | +|**success** | **Boolean** | Success status of the operation. | | ## Implemented Interfaces diff --git a/sdks/java/docs/GetCustomAccessTokenRequest.md b/sdks/java/docs/GetCustomAccessTokenRequest.md index 29eee9c26..0147a611b 100644 --- a/sdks/java/docs/GetCustomAccessTokenRequest.md +++ b/sdks/java/docs/GetCustomAccessTokenRequest.md @@ -12,14 +12,15 @@ |**secretKey** | **String** | The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. | [optional] | |**validityTimeInSec** | **Integer** | Token validity duration in seconds | [optional] | |**orgIdentifier** | **String** | ID or name of the Org context to log in to. If the Org ID or name is not specified but a secret key is provided, the user will be logged into the Org associated with the secret key. If neither the Org ID/name nor the secret key is provided, the user will be logged into the Org context from their previous login session. | [optional] | -|**persistOption** | [**PersistOptionEnum**](#PersistOptionEnum) | Indicates whether the specified attributes should be persisted or not. | | +|**persistOption** | [**PersistOptionEnum**](#PersistOptionEnum) | Indicates whether the specified attributes should be persisted or not. RESET and NONE are not applicable if you are setting variable_values. | | |**filterRules** | [**List<FilterRules>**](FilterRules.md) | Filter rules. | [optional] | |**parameterValues** | [**List<ParameterValues>**](ParameterValues.md) | Parameter values. | [optional] | +|**variableValues** | [**List<VariableValues>**](VariableValues.md) | List of variable values where `name` references an existing formula variable and `values` is any value from the corresponding column. Version: 10.14.0.cl or later | [optional] | |**objects** | [**List<TokenAccessScopeObject>**](TokenAccessScopeObject.md) | Objects on which the filter rules and parameters values should be applied to | [optional] | |**email** | **String** | (just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user. | [optional] | |**displayName** | **String** | (just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user. | [optional] | |**groups** | [**List<GroupObject>**](GroupObject.md) | (just-in-time (JIT) provisioning) ID or name of the groups to which the newly created user belongs. Specify this attribute when creating a new user. | [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. Version: 10.5.0.cl or later | [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. New formula variables won't be created. Version: 10.5.0.cl or later | [optional] | diff --git a/sdks/java/docs/GetNLInstructionsRequest.md b/sdks/java/docs/GetNLInstructionsRequest.md new file mode 100644 index 000000000..6166b497a --- /dev/null +++ b/sdks/java/docs/GetNLInstructionsRequest.md @@ -0,0 +1,17 @@ + + +# GetNLInstructionsRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**dataSourceIdentifier** | **String** | Unique ID or name of the data-model for which to retrieve NL instructions. | | + + +## Implemented Interfaces + +* Serializable + + diff --git a/sdks/java/docs/GroupsImportListInput.md b/sdks/java/docs/GroupsImportListInput.md index 45de8ff7f..74734d6de 100644 --- a/sdks/java/docs/GroupsImportListInput.md +++ b/sdks/java/docs/GroupsImportListInput.md @@ -49,6 +49,7 @@ | CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" | | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | diff --git a/sdks/java/docs/InputVariableValue.md b/sdks/java/docs/InputVariableValue.md deleted file mode 100644 index efd60ca49..000000000 --- a/sdks/java/docs/InputVariableValue.md +++ /dev/null @@ -1,30 +0,0 @@ - - -# InputVariableValue - - -## 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] | - - - -## Enum: PrincipalTypeEnum - -| Name | Value | -|---- | -----| -| USER | "USER" | -| USER_GROUP | "USER_GROUP" | - - -## Implemented Interfaces - -* Serializable - - diff --git a/sdks/java/docs/MetadataApi.md b/sdks/java/docs/MetadataApi.md index 5fc30396c..1b147bf2f 100644 --- a/sdks/java/docs/MetadataApi.md +++ b/sdks/java/docs/MetadataApi.md @@ -388,7 +388,7 @@ null (empty response body) - Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user ### Parameters @@ -460,7 +460,7 @@ null (empty response body) - Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user ### Parameters diff --git a/sdks/java/docs/NLInstructionsInfo.md b/sdks/java/docs/NLInstructionsInfo.md new file mode 100644 index 000000000..e781721a1 --- /dev/null +++ b/sdks/java/docs/NLInstructionsInfo.md @@ -0,0 +1,26 @@ + + +# NLInstructionsInfo + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**instructions** | **List<String>** | User instructions for natural language processing. | | +|**scope** | [**ScopeEnum**](#ScopeEnum) | Scope of the instruction. | | + + + +## Enum: ScopeEnum + +| Name | Value | +|---- | -----| +| GLOBAL | "GLOBAL" | + + +## Implemented Interfaces + +* Serializable + + diff --git a/sdks/java/docs/NLInstructionsInfoInput.md b/sdks/java/docs/NLInstructionsInfoInput.md new file mode 100644 index 000000000..5d8acffd2 --- /dev/null +++ b/sdks/java/docs/NLInstructionsInfoInput.md @@ -0,0 +1,26 @@ + + +# NLInstructionsInfoInput + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**instructions** | **List<String>** | User instructions for natural language processing. | | +|**scope** | [**ScopeEnum**](#ScopeEnum) | Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. | | + + + +## Enum: ScopeEnum + +| Name | Value | +|---- | -----| +| GLOBAL | "GLOBAL" | + + +## Implemented Interfaces + +* Serializable + + diff --git a/sdks/java/docs/ReportsApi.md b/sdks/java/docs/ReportsApi.md index d0314e506..2f1705a5d 100644 --- a/sdks/java/docs/ReportsApi.md +++ b/sdks/java/docs/ReportsApi.md @@ -50,7 +50,7 @@ All URIs are relative to *CLUSTER_URL* - Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. ### Parameters diff --git a/sdks/java/docs/RoleResponse.md b/sdks/java/docs/RoleResponse.md index ceb2383df..ecc261df4 100644 --- a/sdks/java/docs/RoleResponse.md +++ b/sdks/java/docs/RoleResponse.md @@ -62,6 +62,7 @@ | CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" | | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | diff --git a/sdks/java/docs/SearchRoleResponse.md b/sdks/java/docs/SearchRoleResponse.md index 822764d6d..4a34c8233 100644 --- a/sdks/java/docs/SearchRoleResponse.md +++ b/sdks/java/docs/SearchRoleResponse.md @@ -77,6 +77,7 @@ Response for search role api should handle hidden privileges as well. | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | CAN_MODIDY_FOLDERS | "CAN_MODIDY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | 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 59ba8914a..3579d06db 100644 --- a/sdks/java/docs/SearchRolesRequest.md +++ b/sdks/java/docs/SearchRolesRequest.md @@ -67,6 +67,7 @@ | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | CAN_MODIDY_FOLDERS | "CAN_MODIDY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | 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 cb358b2eb..2171e91ef 100644 --- a/sdks/java/docs/SearchUserGroupsRequest.md +++ b/sdks/java/docs/SearchUserGroupsRequest.md @@ -67,6 +67,7 @@ | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | | CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" | diff --git a/sdks/java/docs/SearchUsersRequest.md b/sdks/java/docs/SearchUsersRequest.md index 9be79d6ca..d8db3b4de 100644 --- a/sdks/java/docs/SearchUsersRequest.md +++ b/sdks/java/docs/SearchUsersRequest.md @@ -79,6 +79,7 @@ | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | | CAN_MANAGE_WEBHOOKS | "CAN_MANAGE_WEBHOOKS" | diff --git a/sdks/java/docs/SearchVariablesRequest.md b/sdks/java/docs/SearchVariablesRequest.md index f5cf7a9fe..d23ce40fe 100644 --- a/sdks/java/docs/SearchVariablesRequest.md +++ b/sdks/java/docs/SearchVariablesRequest.md @@ -11,15 +11,15 @@ |**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] | +|**responseContent** | [**ResponseContentEnum**](#ResponseContentEnum) | Format in which we want the output | [optional] | -## Enum: OutputFormatEnum +## Enum: ResponseContentEnum | Name | Value | |---- | -----| -| METADATA_ONLY | "METADATA_ONLY" | +| METADATA | "METADATA" | | METADATA_AND_VALUES | "METADATA_AND_VALUES" | diff --git a/sdks/java/docs/SetNLInstructionsRequest.md b/sdks/java/docs/SetNLInstructionsRequest.md new file mode 100644 index 000000000..1ff983a0e --- /dev/null +++ b/sdks/java/docs/SetNLInstructionsRequest.md @@ -0,0 +1,18 @@ + + +# SetNLInstructionsRequest + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**dataSourceIdentifier** | **String** | Unique ID or name of the data-model for which to set NL instructions. | | +|**nlInstructionsInfo** | [**List<NLInstructionsInfoInput>**](NLInstructionsInfoInput.md) | List of NL instructions to set for the data-model. | | + + +## Implemented Interfaces + +* Serializable + + diff --git a/sdks/java/docs/ThoughtSpotRestApi.md b/sdks/java/docs/ThoughtSpotRestApi.md index 17b6699af..9c73c4492 100644 --- a/sdks/java/docs/ThoughtSpotRestApi.md +++ b/sdks/java/docs/ThoughtSpotRestApi.md @@ -75,6 +75,7 @@ All URIs are relative to *CLUSTER_URL* | [**getCustomAccessToken**](ThoughtSpotRestApi.md#getCustomAccessToken) | **POST** /api/rest/2.0/auth/token/custom | | [**getDataSourceSuggestions**](ThoughtSpotRestApi.md#getDataSourceSuggestions) | **POST** /api/rest/2.0/ai/data-source-suggestions | | [**getFullAccessToken**](ThoughtSpotRestApi.md#getFullAccessToken) | **POST** /api/rest/2.0/auth/token/full | +| [**getNLInstructions**](ThoughtSpotRestApi.md#getNLInstructions) | **POST** /api/rest/2.0/ai/instructions/get | | [**getObjectAccessToken**](ThoughtSpotRestApi.md#getObjectAccessToken) | **POST** /api/rest/2.0/auth/token/object | | [**getRelevantQuestions**](ThoughtSpotRestApi.md#getRelevantQuestions) | **POST** /api/rest/2.0/ai/relevant-questions/ | | [**getSystemConfig**](ThoughtSpotRestApi.md#getSystemConfig) | **GET** /api/rest/2.0/system/config | @@ -112,6 +113,7 @@ All URIs are relative to *CLUSTER_URL* | [**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 | +| [**setNLInstructions**](ThoughtSpotRestApi.md#setNLInstructions) | **POST** /api/rest/2.0/ai/instructions/set | | [**shareMetadata**](ThoughtSpotRestApi.md#shareMetadata) | **POST** /api/rest/2.0/security/metadata/share | | [**singleAnswer**](ThoughtSpotRestApi.md#singleAnswer) | **POST** /api/rest/2.0/ai/answer/create | | [**unassignTag**](ThoughtSpotRestApi.md#unassignTag) | **POST** /api/rest/2.0/tags/unassign | @@ -617,7 +619,7 @@ Version: 10.13.0.cl or later - Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. ### Parameters @@ -724,7 +726,7 @@ Version: 10.13.0.cl or later - Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Parameters @@ -975,7 +977,7 @@ Version: 10.13.0.cl or later - 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 + 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, introduced in 10.15.0.cl 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 formula 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 @@ -1993,7 +1995,7 @@ null (empty response body) - Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. ### Parameters @@ -2700,6 +2702,41 @@ No authorization required | **403** | Forbidden access. | - | | **500** | Unexpected error | - | + +# **getNLInstructions** +> EurekaGetNLInstructionsResponse getNLInstructions(getNLInstructionsRequest) + + + + Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + +### Parameters + +| Name | Type | +|------------- | ------------- | +| **getNLInstructionsRequest** | [**GetNLInstructionsRequest**](GetNLInstructionsRequest.md) + +### Return type + +[**EurekaGetNLInstructionsResponse**](EurekaGetNLInstructionsResponse.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** | Common successful response | - | +| **201** | Common error response | - | +| **400** | Operation failed | - | +| **500** | Operation failed | - | + # **getObjectAccessToken** > Token getObjectAccessToken(getObjectAccessTokenRequest) @@ -3089,7 +3126,7 @@ null (empty response body) - Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user ### Parameters @@ -4017,6 +4054,41 @@ null (empty response body) | **400** | Operation failed | - | | **500** | Operation failed | - | + +# **setNLInstructions** +> EurekaSetNLInstructionsResponse setNLInstructions(setNLInstructionsRequest) + + + + Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + +### Parameters + +| Name | Type | +|------------- | ------------- | +| **setNLInstructionsRequest** | [**SetNLInstructionsRequest**](SetNLInstructionsRequest.md) + +### Return type + +[**EurekaSetNLInstructionsResponse**](EurekaSetNLInstructionsResponse.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** | Common successful response | - | +| **201** | Common error response | - | +| **400** | Operation failed | - | +| **500** | Operation failed | - | + # **shareMetadata** > shareMetadata(shareMetadataRequest) @@ -4130,7 +4202,7 @@ null (empty response body) - Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user ### Parameters @@ -4347,7 +4419,7 @@ null (empty response body) - Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. ### Parameters @@ -4504,7 +4576,7 @@ null (empty response body) - Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Parameters 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 9cab971c9..eddd449c3 100644 --- a/sdks/java/docs/UpdateRoleRequest.md +++ b/sdks/java/docs/UpdateRoleRequest.md @@ -47,6 +47,7 @@ | CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" | | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | | PREVIEW_THOUGHTSPOT_SAGE | "PREVIEW_THOUGHTSPOT_SAGE" | diff --git a/sdks/java/docs/UpdateUserGroupRequest.md b/sdks/java/docs/UpdateUserGroupRequest.md index 4cfd1348d..eb1d8ee9c 100644 --- a/sdks/java/docs/UpdateUserGroupRequest.md +++ b/sdks/java/docs/UpdateUserGroupRequest.md @@ -51,6 +51,7 @@ | CAN_ACCESS_ANALYST_STUDIO | "CAN_ACCESS_ANALYST_STUDIO" | | CAN_MANAGE_ANALYST_STUDIO | "CAN_MANAGE_ANALYST_STUDIO" | | CAN_MODIFY_FOLDERS | "CAN_MODIFY_FOLDERS" | +| CAN_MANAGE_VARIABLES | "CAN_MANAGE_VARIABLES" | | CAN_VIEW_FOLDERS | "CAN_VIEW_FOLDERS" | | PREVIEW_DOCUMENT_SEARCH | "PREVIEW_DOCUMENT_SEARCH" | | CAN_SETUP_VERSION_CONTROL | "CAN_SETUP_VERSION_CONTROL" | diff --git a/sdks/java/docs/Variable.md b/sdks/java/docs/Variable.md index fa3afcde7..0f845111a 100644 --- a/sdks/java/docs/Variable.md +++ b/sdks/java/docs/Variable.md @@ -23,6 +23,7 @@ Variable object | CONNECTION_PROPERTY | "CONNECTION_PROPERTY" | | TABLE_MAPPING | "TABLE_MAPPING" | | CONNECTION_PROPERTY_PER_PRINCIPAL | "CONNECTION_PROPERTY_PER_PRINCIPAL" | +| FORMULA_VARIABLE | "FORMULA_VARIABLE" | ## Implemented Interfaces diff --git a/sdks/java/docs/VariableApi.md b/sdks/java/docs/VariableApi.md index e0be89f10..856665146 100644 --- a/sdks/java/docs/VariableApi.md +++ b/sdks/java/docs/VariableApi.md @@ -17,7 +17,7 @@ All URIs are relative to *CLUSTER_URL* - 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 + 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, introduced in 10.15.0.cl 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 formula 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 diff --git a/sdks/java/docs/VariableDetailInput.md b/sdks/java/docs/VariableDetailInput.md index 65dd44739..c6d2d0fb0 100644 --- a/sdks/java/docs/VariableDetailInput.md +++ b/sdks/java/docs/VariableDetailInput.md @@ -21,6 +21,7 @@ Input for variable details in search | CONNECTION_PROPERTY | "CONNECTION_PROPERTY" | | TABLE_MAPPING | "TABLE_MAPPING" | | CONNECTION_PROPERTY_PER_PRINCIPAL | "CONNECTION_PROPERTY_PER_PRINCIPAL" | +| FORMULA_VARIABLE | "FORMULA_VARIABLE" | ## Implemented Interfaces diff --git a/sdks/java/docs/VariableUpdateAssignmentInput.md b/sdks/java/docs/VariableUpdateAssignmentInput.md index 10a568712..1812149da 100644 --- a/sdks/java/docs/VariableUpdateAssignmentInput.md +++ b/sdks/java/docs/VariableUpdateAssignmentInput.md @@ -21,7 +21,7 @@ Input for variable value update in batch operations | ADD | "ADD" | | REMOVE | "REMOVE" | | REPLACE | "REPLACE" | -| CLEAR | "CLEAR" | +| RESET | "RESET" | ## Implemented Interfaces 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/VariableValues.md b/sdks/java/docs/VariableValues.md new file mode 100644 index 000000000..77cf8e2c8 --- /dev/null +++ b/sdks/java/docs/VariableValues.md @@ -0,0 +1,19 @@ + + +# VariableValues + +Variable values. + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | The name of the existing formula variable. | | +|**values** | **List<Object>** | The values to filter on. | | + + +## Implemented Interfaces + +* Serializable + + diff --git a/sdks/java/pom.xml b/sdks/java/pom.xml index 6d9651240..415013eb5 100644 --- a/sdks/java/pom.xml +++ b/sdks/java/pom.xml @@ -4,7 +4,7 @@ com.thoughtspot rest-api-sdk - 2.19.0 + 2.20.0 jar rest-api-sdk diff --git a/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java b/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java index 7b557e687..917b9d005 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/ApiClient.java @@ -182,7 +182,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("ThoughtSpot-Client/java/2.19.0"); + setUserAgent("ThoughtSpot-Client/java/2.20.0"); authentications = new HashMap(); } diff --git a/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java b/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java index 96b8539de..b874c13f2 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/Configuration.java @@ -8,7 +8,7 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") public class Configuration { - public static final String VERSION = "2.19.0"; + public static final String VERSION = "2.20.0"; private static volatile ApiClient defaultApiClient = new ApiClient(); diff --git a/sdks/java/src/main/java/com/thoughtspot/client/JSON.java b/sdks/java/src/main/java/com/thoughtspot/client/JSON.java index 2aba06554..2a2e3725c 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/JSON.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/JSON.java @@ -324,6 +324,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.EurekaDecomposeQueryResponse .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.EurekaGetNLInstructionsResponse + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse .CustomTypeAdapterFactory()); @@ -335,6 +338,9 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.EurekaRelevantQuestion.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.EurekaSetNLInstructionsResponse + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.EventChannelConfig.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -422,6 +428,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.GetFullAccessTokenRequest .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.GetNLInstructionsRequest + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.GetObjectAccessTokenRequest .CustomTypeAdapterFactory()); @@ -505,6 +514,11 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.ModelTableList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.NLInstructionsInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.NLInstructionsInfoInput + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.ObjectIDAndName.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -711,6 +725,9 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.SendMessageRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.SetNLInstructionsRequest + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.ShareMetadataRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -850,6 +867,8 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.VariableValue.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.thoughtspot.client.model.VariableValues.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.thoughtspot.client.model.WebhookAuthApiKey.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/AiApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/AiApi.java index 7827f3495..d7d00fcb8 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 @@ -18,8 +18,11 @@ import com.thoughtspot.client.model.CreateConversationRequest; import com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse; import com.thoughtspot.client.model.EurekaDecomposeQueryResponse; +import com.thoughtspot.client.model.EurekaGetNLInstructionsResponse; import com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse; +import com.thoughtspot.client.model.EurekaSetNLInstructionsResponse; import com.thoughtspot.client.model.GetDataSourceSuggestionsRequest; +import com.thoughtspot.client.model.GetNLInstructionsRequest; import com.thoughtspot.client.model.GetRelevantQuestionsRequest; import com.thoughtspot.client.model.QueryGetDecomposedQueryRequest; import com.thoughtspot.client.model.ResponseMessage; @@ -27,6 +30,7 @@ import com.thoughtspot.client.model.SendAgentMessageResponse; import com.thoughtspot.client.model.SendAgentMessageStreamingRequest; import com.thoughtspot.client.model.SendMessageRequest; +import com.thoughtspot.client.model.SetNLInstructionsRequest; import com.thoughtspot.client.model.SingleAnswerRequest; import java.lang.reflect.Type; import java.util.ArrayList; @@ -654,6 +658,221 @@ public okhttp3.Call getDataSourceSuggestionsAsync( localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for getNLInstructions + * + * @param getNLInstructionsRequest (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 getNLInstructionsCall( + GetNLInstructionsRequest getNLInstructionsRequest, 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 = getNLInstructionsRequest; + + // create path and map variables + String localVarPath = "/api/rest/2.0/ai/instructions/get"; + + 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 getNLInstructionsValidateBeforeCall( + GetNLInstructionsRequest getNLInstructionsRequest, final ApiCallback _callback) + throws ApiException { + // verify the required parameter 'getNLInstructionsRequest' is set + if (getNLInstructionsRequest == null) { + throw new ApiException( + "Missing the required parameter 'getNLInstructionsRequest' when calling" + + " getNLInstructions(Async)"); + } + + return getNLInstructionsCall(getNLInstructionsRequest, _callback); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) + * instructions for a specific data-model. These instructions guide the AI system in + * understanding data context and generating more accurate responses when processing natural + * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @param getNLInstructionsRequest (required) + * @return EurekaGetNLInstructionsResponse + * @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 -
+ */ + public EurekaGetNLInstructionsResponse getNLInstructions( + GetNLInstructionsRequest getNLInstructionsRequest) throws ApiException { + ApiResponse localVarResp = + getNLInstructionsWithHttpInfo(getNLInstructionsRequest); + return localVarResp.getData(); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) + * instructions for a specific data-model. These instructions guide the AI system in + * understanding data context and generating more accurate responses when processing natural + * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @param getNLInstructionsRequest (required) + * @return ApiResponse<EurekaGetNLInstructionsResponse> + * @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 -
+ */ + public ApiResponse getNLInstructionsWithHttpInfo( + GetNLInstructionsRequest getNLInstructionsRequest) throws ApiException { + okhttp3.Call localVarCall = + getNLInstructionsValidateBeforeCall(getNLInstructionsRequest, null); + Type localVarReturnType = new TypeToken() {}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * (asynchronously) Version: 10.15.0.cl or later This API allows users to retrieve existing + * natural language (NL) instructions for a specific data-model. These instructions guide the AI + * system in understanding data context and generating more accurate responses when processing + * natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, + * the request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @param getNLInstructionsRequest (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 + * @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 getNLInstructionsAsync( + GetNLInstructionsRequest getNLInstructionsRequest, + final ApiCallback _callback) + throws ApiException { + + okhttp3.Call localVarCall = + getNLInstructionsValidateBeforeCall(getNLInstructionsRequest, _callback); + Type localVarReturnType = new TypeToken() {}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getRelevantQuestions * @@ -1718,6 +1937,224 @@ public okhttp3.Call sendMessageAsync( localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for setNLInstructions + * + * @param setNLInstructionsRequest (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 setNLInstructionsCall( + SetNLInstructionsRequest setNLInstructionsRequest, 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 = setNLInstructionsRequest; + + // create path and map variables + String localVarPath = "/api/rest/2.0/ai/instructions/set"; + + 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 setNLInstructionsValidateBeforeCall( + SetNLInstructionsRequest setNLInstructionsRequest, final ApiCallback _callback) + throws ApiException { + // verify the required parameter 'setNLInstructionsRequest' is set + if (setNLInstructionsRequest == null) { + throw new ApiException( + "Missing the required parameter 'setNLInstructionsRequest' when calling" + + " setNLInstructions(Async)"); + } + + return setNLInstructionsCall(setNLInstructionsRequest, _callback); + } + + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions + * for a specific data-model to improve AI-generated answers and query processing. These + * instructions help guide the AI system to better understand the data context and provide more + * accurate responses. #### Usage guidelines To set NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model for which to set NL instructions - `nl_instructions_info`: An array of + * instruction objects, each containing: - `instructions`: Array of text instructions + * for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently + * only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + * The API returns a response object with: - `success`: Boolean indicating whether the + * operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply + * globally for that data-model across the system > ###### Note: > * To use this API, the + * user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must + * use corresponding org related bearerToken where the data-model exists. > * This endpoint + * is currently in Beta. Breaking changes may be introduced before the endpoint is made + * Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint + * requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > + * * Instructions help improve the accuracy and relevance of AI-generated responses for the + * specified data-model. + * + * @param setNLInstructionsRequest (required) + * @return EurekaSetNLInstructionsResponse + * @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 -
+ */ + public EurekaSetNLInstructionsResponse setNLInstructions( + SetNLInstructionsRequest setNLInstructionsRequest) throws ApiException { + ApiResponse localVarResp = + setNLInstructionsWithHttpInfo(setNLInstructionsRequest); + return localVarResp.getData(); + } + + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions + * for a specific data-model to improve AI-generated answers and query processing. These + * instructions help guide the AI system to better understand the data context and provide more + * accurate responses. #### Usage guidelines To set NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model for which to set NL instructions - `nl_instructions_info`: An array of + * instruction objects, each containing: - `instructions`: Array of text instructions + * for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently + * only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + * The API returns a response object with: - `success`: Boolean indicating whether the + * operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply + * globally for that data-model across the system > ###### Note: > * To use this API, the + * user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must + * use corresponding org related bearerToken where the data-model exists. > * This endpoint + * is currently in Beta. Breaking changes may be introduced before the endpoint is made + * Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint + * requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > + * * Instructions help improve the accuracy and relevance of AI-generated responses for the + * specified data-model. + * + * @param setNLInstructionsRequest (required) + * @return ApiResponse<EurekaSetNLInstructionsResponse> + * @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 -
+ */ + public ApiResponse setNLInstructionsWithHttpInfo( + SetNLInstructionsRequest setNLInstructionsRequest) throws ApiException { + okhttp3.Call localVarCall = + setNLInstructionsValidateBeforeCall(setNLInstructionsRequest, null); + Type localVarReturnType = new TypeToken() {}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * (asynchronously) Version: 10.15.0.cl or later This API allows users to set natural language + * (NL) instructions for a specific data-model to improve AI-generated answers and query + * processing. These instructions help guide the AI system to better understand the data context + * and provide more accurate responses. #### Usage guidelines To set NL instructions for a + * data-model, the request must include: - `data_source_identifier`: The unique ID or + * name of the data-model for which to set NL instructions - `nl_instructions_info`: + * An array of instruction objects, each containing: - `instructions`: Array of text + * instructions for the LLM - `scope`: The scope of the instruction + * (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to + * data-model-user scope in future. The API returns a response object with: - + * `success`: Boolean indicating whether the operation was successful #### + * Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across + * the system > ###### Note: > * To use this API, the user needs either edit access or + * SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related + * bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking + * changes may be introduced before the endpoint is made Generally Available. > * Available + * from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact + * ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the + * accuracy and relevance of AI-generated responses for the specified data-model. + * + * @param setNLInstructionsRequest (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 + * @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 setNLInstructionsAsync( + SetNLInstructionsRequest setNLInstructionsRequest, + final ApiCallback _callback) + throws ApiException { + + okhttp3.Call localVarCall = + setNLInstructionsValidateBeforeCall(setNLInstructionsRequest, _callback); + Type localVarReturnType = new TypeToken() {}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for singleAnswer * diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/ConnectionConfigurationsApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/ConnectionConfigurationsApi.java index ab2867bd3..fe3c87d37 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/ConnectionConfigurationsApi.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/api/ConnectionConfigurationsApi.java @@ -387,7 +387,10 @@ private okhttp3.Call createConnectionConfigurationValidateBeforeCall( * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @param createConnectionConfigurationRequest (required) * @return ConnectionConfigurationResponse @@ -427,7 +430,10 @@ public ConnectionConfigurationResponse createConnectionConfiguration( * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @param createConnectionConfigurationRequest (required) * @return ApiResponse<ConnectionConfigurationResponse> @@ -469,7 +475,10 @@ public ApiResponse createConnectionConfiguratio * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @param createConnectionConfigurationRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -796,8 +805,11 @@ private okhttp3.Call updateConnectionConfigurationValidateBeforeCall( * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * @@ -833,8 +845,11 @@ public void updateConnectionConfiguration( * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * @@ -873,8 +888,11 @@ public ApiResponse updateConnectionConfigurationWithHttpInfo( * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomisationApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomisationApi.java deleted file mode 100644 index e3753502f..000000000 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomisationApi.java +++ /dev/null @@ -1,809 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -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; -import com.thoughtspot.client.ApiException; -import com.thoughtspot.client.ApiResponse; -import com.thoughtspot.client.Configuration; -import com.thoughtspot.client.Pair; -import com.thoughtspot.client.model.CreateEmailCustomisationRequest; -import com.thoughtspot.client.model.CreateEmailCustomisationResponse; -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") -public class EmailCustomisationApi { - private ApiClient localVarApiClient; - private ApiClientConfiguration localVarApiClientConfiguration; - private int localHostIndex; - private String localCustomBaseUrl; - - public EmailCustomisationApi() { - this(Configuration.getDefaultApiClient()); - } - - public EmailCustomisationApi(ApiClient apiClient) { - this.localVarApiClient = apiClient; - } - - public EmailCustomisationApi(ApiClientConfiguration apiClientConfiguration) { - this.localVarApiClientConfiguration = apiClientConfiguration; - this.localVarApiClient = new ApiClient(apiClientConfiguration); - } - - public ApiClient getApiClient() { - return localVarApiClient; - } - - public void setApiClient(ApiClient apiClient) { - this.localVarApiClient = apiClient; - } - - public ApiClientConfiguration getApiClientConfiguration() { - return localVarApiClientConfiguration; - } - - public void applyApiClientConfiguration(ApiClientConfiguration apiClientConfiguration) { - this.localVarApiClientConfiguration = apiClientConfiguration; - if (localVarApiClient != null) { - localVarApiClient.applyApiClientConfiguration(apiClientConfiguration); - } else { - localVarApiClient = new ApiClient(apiClientConfiguration); - } - } - - public int getHostIndex() { - return localHostIndex; - } - - public void setHostIndex(int hostIndex) { - this.localHostIndex = hostIndex; - } - - public String getCustomBaseUrl() { - return localCustomBaseUrl; - } - - public void setCustomBaseUrl(String customBaseUrl) { - this.localCustomBaseUrl = customBaseUrl; - } - - /** - * Build call for createEmailCustomisation - * - * @param createEmailCustomisationRequest (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 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call createEmailCustomisationCall( - CreateEmailCustomisationRequest createEmailCustomisationRequest, - 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 = createEmailCustomisationRequest; - - // create path and map variables - String localVarPath = "/api/rest/2.0/customization/email"; - - 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 createEmailCustomisationValidateBeforeCall( - CreateEmailCustomisationRequest createEmailCustomisationRequest, - final ApiCallback _callback) - throws ApiException { - // verify the required parameter 'createEmailCustomisationRequest' is set - if (createEmailCustomisationRequest == null) { - throw new ApiException( - "Missing the required parameter 'createEmailCustomisationRequest' when calling" - + " createEmailCustomisation(Async)"); - } - - return createEmailCustomisationCall(createEmailCustomisationRequest, _callback); - } - - /** - * 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>\" } } ``` - * - * @param createEmailCustomisationRequest (required) - * @return CreateEmailCustomisationResponse - * @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 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public CreateEmailCustomisationResponse createEmailCustomisation( - CreateEmailCustomisationRequest createEmailCustomisationRequest) throws ApiException { - ApiResponse localVarResp = - createEmailCustomisationWithHttpInfo(createEmailCustomisationRequest); - return localVarResp.getData(); - } - - /** - * 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>\" } } ``` - * - * @param createEmailCustomisationRequest (required) - * @return ApiResponse<CreateEmailCustomisationResponse> - * @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 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public ApiResponse createEmailCustomisationWithHttpInfo( - CreateEmailCustomisationRequest createEmailCustomisationRequest) throws ApiException { - okhttp3.Call localVarCall = - createEmailCustomisationValidateBeforeCall(createEmailCustomisationRequest, null); - Type localVarReturnType = new TypeToken() {}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } - - /** - * (asynchronously) 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>\" } } ``` - * - * @param createEmailCustomisationRequest (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 - * @http.response.details - * - * - * - * - * - * - * - *
Response Details
Status Code Description Response Headers
200 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call createEmailCustomisationAsync( - CreateEmailCustomisationRequest createEmailCustomisationRequest, - final ApiCallback _callback) - throws ApiException { - - okhttp3.Call localVarCall = - createEmailCustomisationValidateBeforeCall( - createEmailCustomisationRequest, _callback); - Type localVarReturnType = new TypeToken() {}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); - return localVarCall; - } - /** - * Build call for deleteEmailCustomisation - * - * @param templateIdentifier Unique ID or name of the email customization. (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
204 Email Customization configuration successfully deleted. -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call deleteEmailCustomisationCall( - String templateIdentifier, 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 = null; - - // create path and map variables - String localVarPath = - "/api/rest/2.0/customization/email/{template_identifier}/delete" - .replace( - "{" + "template_identifier" + "}", - localVarApiClient.escapeString(templateIdentifier.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 = {}; - 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 deleteEmailCustomisationValidateBeforeCall( - String templateIdentifier, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'templateIdentifier' is set - if (templateIdentifier == null) { - throw new ApiException( - "Missing the required parameter 'templateIdentifier' when calling" - + " deleteEmailCustomisation(Async)"); - } - - return deleteEmailCustomisationCall(templateIdentifier, _callback); - } - - /** - * 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. - * - * @param templateIdentifier Unique ID or name of the email customization. (required) - * @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
204 Email Customization configuration successfully deleted. -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public void deleteEmailCustomisation(String templateIdentifier) throws ApiException { - deleteEmailCustomisationWithHttpInfo(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. - * - * @param templateIdentifier Unique ID or name of the email customization. (required) - * @return ApiResponse<Void> - * @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
204 Email Customization configuration successfully deleted. -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public ApiResponse deleteEmailCustomisationWithHttpInfo(String templateIdentifier) - throws ApiException { - okhttp3.Call localVarCall = - deleteEmailCustomisationValidateBeforeCall(templateIdentifier, null); - return localVarApiClient.execute(localVarCall); - } - - /** - * (asynchronously) 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. - * - * @param templateIdentifier Unique ID or name of the email customization. (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 - * @http.response.details - * - * - * - * - * - * - * - *
Response Details
Status Code Description Response Headers
204 Email Customization configuration successfully deleted. -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call deleteEmailCustomisationAsync( - String templateIdentifier, final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = - deleteEmailCustomisationValidateBeforeCall(templateIdentifier, _callback); - localVarApiClient.executeAsync(localVarCall, _callback); - return localVarCall; - } - /** - * Build call for searchEmailCustomisation - * - * @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 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call searchEmailCustomisationCall(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 = null; - - // create path and map variables - String localVarPath = "/api/rest/2.0/customization/email/search"; - - 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 = {}; - 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 searchEmailCustomisationValidateBeforeCall(final ApiCallback _callback) - throws ApiException { - return searchEmailCustomisationCall(_callback); - } - - /** - * 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. - * - * @return List<CreateEmailCustomisationResponse> - * @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 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public List searchEmailCustomisation() throws ApiException { - ApiResponse> localVarResp = - searchEmailCustomisationWithHttpInfo(); - return localVarResp.getData(); - } - - /** - * 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. - * - * @return ApiResponse<List<CreateEmailCustomisationResponse>> - * @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 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public ApiResponse> - searchEmailCustomisationWithHttpInfo() throws ApiException { - okhttp3.Call localVarCall = searchEmailCustomisationValidateBeforeCall(null); - Type localVarReturnType = - new TypeToken>() {}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } - - /** - * (asynchronously) 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. - * - * @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 - * @http.response.details - * - * - * - * - * - * - * - *
Response Details
Status Code Description Response Headers
200 OK -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call searchEmailCustomisationAsync( - final ApiCallback> _callback) - throws ApiException { - - okhttp3.Call localVarCall = searchEmailCustomisationValidateBeforeCall(_callback); - Type localVarReturnType = - new TypeToken>() {}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); - return localVarCall; - } - /** - * Build call for validateEmailCustomisation - * - * @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
204 Triggered test email for customization configuration -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call validateEmailCustomisationCall(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 = null; - - // create path and map variables - String localVarPath = "/api/rest/2.0/customization/email/validate"; - - 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 = {}; - 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 validateEmailCustomisationValidateBeforeCall(final ApiCallback _callback) - throws ApiException { - return validateEmailCustomisationCall(_callback); - } - - /** - * 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. - * - * @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
204 Triggered test email for customization configuration -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public void validateEmailCustomisation() throws ApiException { - validateEmailCustomisationWithHttpInfo(); - } - - /** - * 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. - * - * @return ApiResponse<Void> - * @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
204 Triggered test email for customization configuration -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public ApiResponse validateEmailCustomisationWithHttpInfo() throws ApiException { - okhttp3.Call localVarCall = validateEmailCustomisationValidateBeforeCall(null); - return localVarApiClient.execute(localVarCall); - } - - /** - * (asynchronously) 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. - * - * @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 - * @http.response.details - * - * - * - * - * - * - * - *
Response Details
Status Code Description Response Headers
204 Triggered test email for customization configuration -
400 Invalid request. -
403 Unauthorized access. -
500 Unexpected error -
- */ - public okhttp3.Call validateEmailCustomisationAsync(final ApiCallback _callback) - throws ApiException { - - okhttp3.Call localVarCall = validateEmailCustomisationValidateBeforeCall(_callback); - localVarApiClient.executeAsync(localVarCall, _callback); - return localVarCall; - } -} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomizationApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomizationApi.java index dc7416e8e..6c38f74a3 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomizationApi.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/api/EmailCustomizationApi.java @@ -180,22 +180,26 @@ private okhttp3.Call createEmailCustomizationValidateBeforeCall( * #### Usage guidelines To create a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param createEmailCustomizationRequest (required) * @return CreateEmailCustomizationResponse @@ -228,22 +232,26 @@ public CreateEmailCustomizationResponse createEmailCustomization( * #### Usage guidelines To create a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param createEmailCustomizationRequest (required) * @return ApiResponse<CreateEmailCustomizationResponse> @@ -277,22 +285,26 @@ public ApiResponse createEmailCustomizationWit * this on your instance. #### Usage guidelines To create a custom configuration pass these * parameters in your API request: - A JSON map of configuration attributes * `template_properties`. The following example shows a sample set of customization - * configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", - * \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": - * \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : - * \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * configuration: ``` { { \"cta_button_bg_color\": + * \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", + * \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param createEmailCustomizationRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -993,22 +1005,26 @@ private okhttp3.Call updateEmailCustomizationValidateBeforeCall( * #### Usage guidelines To update a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param updateEmailCustomizationRequest (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the @@ -1039,22 +1055,26 @@ public void updateEmailCustomization( * #### Usage guidelines To update a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param updateEmailCustomizationRequest (required) * @return ApiResponse<Void> @@ -1088,22 +1108,26 @@ public ApiResponse updateEmailCustomizationWithHttpInfo( * this on your instance. #### Usage guidelines To update a custom configuration pass these * parameters in your API request: - A JSON map of configuration attributes * `template_properties`. The following example shows a sample set of customization - * configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", - * \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": - * \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : - * \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * configuration: ``` { { \"cta_button_bg_color\": + * \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", + * \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param updateEmailCustomizationRequest (required) * @param _callback The callback to be executed when the API call finishes diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/MetadataApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/MetadataApi.java index 6b80f3f96..d95488176 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/MetadataApi.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/api/MetadataApi.java @@ -2370,11 +2370,12 @@ private okhttp3.Call parameterizeMetadataValidateBeforeCall( * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing * fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the * metadata object. The API endpoint allows parameterizing the following types of metadata - * objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field + * type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName + * * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @param parameterizeMetadataRequest (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the @@ -2399,11 +2400,12 @@ public void parameterizeMetadata(ParameterizeMetadataRequest parameterizeMetadat * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing * fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the * metadata object. The API endpoint allows parameterizing the following types of metadata - * objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field + * type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName + * * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @param parameterizeMetadataRequest (required) * @return ApiResponse<Void> @@ -2431,11 +2433,12 @@ public ApiResponse parameterizeMetadataWithHttpInfo( * (asynchronously) Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows * parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to * modify the metadata object. The API endpoint allows parameterizing the following types of - * metadata objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the + * field type must be `ATTRIBUTE` and field name can be one of: * databaseName * + * schemaName * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @param parameterizeMetadataRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -2804,11 +2807,12 @@ private okhttp3.Call unparameterizeMetadataValidateBeforeCall( * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows * removing parameterization from fields in metadata objects in ThoughtSpot. Requires * appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @param unparameterizeMetadataRequest (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the @@ -2833,11 +2837,12 @@ public void unparameterizeMetadata(UnparameterizeMetadataRequest unparameterizeM * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows * removing parameterization from fields in metadata objects in ThoughtSpot. Requires * appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @param unparameterizeMetadataRequest (required) * @return ApiResponse<Void> @@ -2865,11 +2870,12 @@ public ApiResponse unparameterizeMetadataWithHttpInfo( * (asynchronously) Remove parameterization from fields in metadata objects. Version: 10.9.0.cl * or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. * Requires appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @param unparameterizeMetadataRequest (required) * @param _callback The callback to be executed when the API call finishes diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/ReportsApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/ReportsApi.java index b117c233d..1cfb41fe3 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/ReportsApi.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/api/ReportsApi.java @@ -358,15 +358,16 @@ private okhttp3.Call exportLiveboardReportValidateBeforeCall( } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file - * format. Requires at least view access to the Liveboard. #### Usage guidelines In the request - * body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific - * visualizations, add GUIDs or names of the visualizations. The default `file_format` - * is PDF. For PDF downloads, you can specify additional parameters to customize the page - * orientation and include or exclude the cover page, logo, footer text, and page numbers. - * Similar customization options are also available for PNG output. **NOTE**: The downloadable - * file returned in API response file is extensionless. Please rename the downloaded file by - * typing in the relevant extension. Optionally, you can define [runtime + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or + * XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In + * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report + * with specific visualizations, add GUIDs or names of the visualizations. The default + * `file_format` is CSV. For PDF exports, you can specify additional parameters to + * customize the page orientation and include or exclude the cover page, logo, footer text, and + * page numbers. Similar customization options are available for PNG exports. CSV and XLSX + * exports do not support customization options. **NOTE**: The downloadable file returned in API + * response file is extensionless. Please rename the downloaded file by typing in the relevant + * extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -378,7 +379,15 @@ private okhttp3.Call exportLiveboardReportValidateBeforeCall( * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @param exportLiveboardReportRequest (required) * @return File @@ -403,15 +412,16 @@ public File exportLiveboardReport(ExportLiveboardReportRequest exportLiveboardRe } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file - * format. Requires at least view access to the Liveboard. #### Usage guidelines In the request - * body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific - * visualizations, add GUIDs or names of the visualizations. The default `file_format` - * is PDF. For PDF downloads, you can specify additional parameters to customize the page - * orientation and include or exclude the cover page, logo, footer text, and page numbers. - * Similar customization options are also available for PNG output. **NOTE**: The downloadable - * file returned in API response file is extensionless. Please rename the downloaded file by - * typing in the relevant extension. Optionally, you can define [runtime + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or + * XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In + * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report + * with specific visualizations, add GUIDs or names of the visualizations. The default + * `file_format` is CSV. For PDF exports, you can specify additional parameters to + * customize the page orientation and include or exclude the cover page, logo, footer text, and + * page numbers. Similar customization options are available for PNG exports. CSV and XLSX + * exports do not support customization options. **NOTE**: The downloadable file returned in API + * response file is extensionless. Please rename the downloaded file by typing in the relevant + * extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -423,7 +433,15 @@ public File exportLiveboardReport(ExportLiveboardReportRequest exportLiveboardRe * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @param exportLiveboardReportRequest (required) * @return ApiResponse<File> @@ -449,15 +467,16 @@ public ApiResponse exportLiveboardReportWithHttpInfo( } /** - * (asynchronously) Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF - * or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In - * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report - * with specific visualizations, add GUIDs or names of the visualizations. The default - * `file_format` is PDF. For PDF downloads, you can specify additional parameters to - * customize the page orientation and include or exclude the cover page, logo, footer text, and - * page numbers. Similar customization options are also available for PNG output. **NOTE**: The - * downloadable file returned in API response file is extensionless. Please rename the - * downloaded file by typing in the relevant extension. Optionally, you can define [runtime + * (asynchronously) Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in + * PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### + * Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate + * a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. + * The default `file_format` is CSV. For PDF exports, you can specify additional + * parameters to customize the page orientation and include or exclude the cover page, logo, + * footer text, and page numbers. Similar customization options are available for PNG exports. + * CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file + * returned in API response file is extensionless. Please rename the downloaded file by typing + * in the relevant extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -469,7 +488,15 @@ public ApiResponse exportLiveboardReportWithHttpInfo( * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @param exportLiveboardReportRequest (required) * @param _callback The callback to be executed when the API call finishes diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/ThoughtSpotRestApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/ThoughtSpotRestApi.java index 3a4c5b710..f51449664 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/ThoughtSpotRestApi.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/api/ThoughtSpotRestApi.java @@ -61,7 +61,9 @@ import com.thoughtspot.client.model.DeployResponse; import com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse; import com.thoughtspot.client.model.EurekaDecomposeQueryResponse; +import com.thoughtspot.client.model.EurekaGetNLInstructionsResponse; import com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse; +import com.thoughtspot.client.model.EurekaSetNLInstructionsResponse; import com.thoughtspot.client.model.ExportAnswerReportRequest; import com.thoughtspot.client.model.ExportLiveboardReportRequest; import com.thoughtspot.client.model.ExportMetadataTMLBatchedRequest; @@ -82,6 +84,7 @@ import com.thoughtspot.client.model.GetCustomAccessTokenRequest; import com.thoughtspot.client.model.GetDataSourceSuggestionsRequest; import com.thoughtspot.client.model.GetFullAccessTokenRequest; +import com.thoughtspot.client.model.GetNLInstructionsRequest; import com.thoughtspot.client.model.GetObjectAccessTokenRequest; import com.thoughtspot.client.model.GetRelevantQuestionsRequest; import com.thoughtspot.client.model.GetTokenResponse; @@ -138,6 +141,7 @@ import com.thoughtspot.client.model.SendAgentMessageResponse; import com.thoughtspot.client.model.SendAgentMessageStreamingRequest; import com.thoughtspot.client.model.SendMessageRequest; +import com.thoughtspot.client.model.SetNLInstructionsRequest; import com.thoughtspot.client.model.ShareMetadataRequest; import com.thoughtspot.client.model.SingleAnswerRequest; import com.thoughtspot.client.model.SqlQueryResponse; @@ -3043,7 +3047,10 @@ private okhttp3.Call createConnectionConfigurationValidateBeforeCall( * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @param createConnectionConfigurationRequest (required) * @return ConnectionConfigurationResponse @@ -3083,7 +3090,10 @@ public ConnectionConfigurationResponse createConnectionConfiguration( * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @param createConnectionConfigurationRequest (required) * @return ApiResponse<ConnectionConfigurationResponse> @@ -3125,7 +3135,10 @@ public ApiResponse createConnectionConfiguratio * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @param createConnectionConfigurationRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -3658,22 +3671,26 @@ private okhttp3.Call createEmailCustomizationValidateBeforeCall( * #### Usage guidelines To create a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param createEmailCustomizationRequest (required) * @return CreateEmailCustomizationResponse @@ -3706,22 +3723,26 @@ public CreateEmailCustomizationResponse createEmailCustomization( * #### Usage guidelines To create a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param createEmailCustomizationRequest (required) * @return ApiResponse<CreateEmailCustomizationResponse> @@ -3755,22 +3776,26 @@ public ApiResponse createEmailCustomizationWit * this on your instance. #### Usage guidelines To create a custom configuration pass these * parameters in your API request: - A JSON map of configuration attributes * `template_properties`. The following example shows a sample set of customization - * configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", - * \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": - * \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : - * \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * configuration: ``` { { \"cta_button_bg_color\": + * \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", + * \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param createEmailCustomizationRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -5035,11 +5060,11 @@ private okhttp3.Call createVariableValidateBeforeCall( * 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 + * this. * FORMULA_VARIABLE - For Formula variables, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user + * lacks required permissions * The variable name already exists * The variable type is invalid * * @param createVariableRequest (required) * @return Variable @@ -5070,11 +5095,11 @@ public Variable createVariable(CreateVariableRequest createVariableRequest) * 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 + * this. * FORMULA_VARIABLE - For Formula variables, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user + * lacks required permissions * The variable name already exists * The variable type is invalid * * @param createVariableRequest (required) * @return ApiResponse<Variable> @@ -5106,12 +5131,12 @@ public ApiResponse createVariableWithHttpInfo( * 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 + * this please contact support to enable this. * FORMULA_VARIABLE - For Formula variables, + * introduced in 10.15.0.cl 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 formula variables (defaults to null) + * The operation will fail if: * The user lacks required permissions * The variable name already + * exists * The variable type is invalid * * @param createVariableRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -10490,15 +10515,16 @@ private okhttp3.Call exportLiveboardReportValidateBeforeCall( } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file - * format. Requires at least view access to the Liveboard. #### Usage guidelines In the request - * body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific - * visualizations, add GUIDs or names of the visualizations. The default `file_format` - * is PDF. For PDF downloads, you can specify additional parameters to customize the page - * orientation and include or exclude the cover page, logo, footer text, and page numbers. - * Similar customization options are also available for PNG output. **NOTE**: The downloadable - * file returned in API response file is extensionless. Please rename the downloaded file by - * typing in the relevant extension. Optionally, you can define [runtime + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or + * XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In + * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report + * with specific visualizations, add GUIDs or names of the visualizations. The default + * `file_format` is CSV. For PDF exports, you can specify additional parameters to + * customize the page orientation and include or exclude the cover page, logo, footer text, and + * page numbers. Similar customization options are available for PNG exports. CSV and XLSX + * exports do not support customization options. **NOTE**: The downloadable file returned in API + * response file is extensionless. Please rename the downloaded file by typing in the relevant + * extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -10510,7 +10536,15 @@ private okhttp3.Call exportLiveboardReportValidateBeforeCall( * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @param exportLiveboardReportRequest (required) * @return File @@ -10535,15 +10569,16 @@ public File exportLiveboardReport(ExportLiveboardReportRequest exportLiveboardRe } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file - * format. Requires at least view access to the Liveboard. #### Usage guidelines In the request - * body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific - * visualizations, add GUIDs or names of the visualizations. The default `file_format` - * is PDF. For PDF downloads, you can specify additional parameters to customize the page - * orientation and include or exclude the cover page, logo, footer text, and page numbers. - * Similar customization options are also available for PNG output. **NOTE**: The downloadable - * file returned in API response file is extensionless. Please rename the downloaded file by - * typing in the relevant extension. Optionally, you can define [runtime + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or + * XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In + * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report + * with specific visualizations, add GUIDs or names of the visualizations. The default + * `file_format` is CSV. For PDF exports, you can specify additional parameters to + * customize the page orientation and include or exclude the cover page, logo, footer text, and + * page numbers. Similar customization options are available for PNG exports. CSV and XLSX + * exports do not support customization options. **NOTE**: The downloadable file returned in API + * response file is extensionless. Please rename the downloaded file by typing in the relevant + * extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -10555,7 +10590,15 @@ public File exportLiveboardReport(ExportLiveboardReportRequest exportLiveboardRe * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @param exportLiveboardReportRequest (required) * @return ApiResponse<File> @@ -10581,15 +10624,16 @@ public ApiResponse exportLiveboardReportWithHttpInfo( } /** - * (asynchronously) Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF - * or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In - * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report - * with specific visualizations, add GUIDs or names of the visualizations. The default - * `file_format` is PDF. For PDF downloads, you can specify additional parameters to - * customize the page orientation and include or exclude the cover page, logo, footer text, and - * page numbers. Similar customization options are also available for PNG output. **NOTE**: The - * downloadable file returned in API response file is extensionless. Please rename the - * downloaded file by typing in the relevant extension. Optionally, you can define [runtime + * (asynchronously) Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in + * PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### + * Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate + * a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. + * The default `file_format` is CSV. For PDF exports, you can specify additional + * parameters to customize the page orientation and include or exclude the cover page, logo, + * footer text, and page numbers. Similar customization options are available for PNG exports. + * CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file + * returned in API response file is extensionless. Please rename the downloaded file by typing + * in the relevant extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -10601,7 +10645,15 @@ public ApiResponse exportLiveboardReportWithHttpInfo( * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @param exportLiveboardReportRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -14625,6 +14677,221 @@ public okhttp3.Call getFullAccessTokenAsync( localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for getNLInstructions + * + * @param getNLInstructionsRequest (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 getNLInstructionsCall( + GetNLInstructionsRequest getNLInstructionsRequest, 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 = getNLInstructionsRequest; + + // create path and map variables + String localVarPath = "/api/rest/2.0/ai/instructions/get"; + + 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 getNLInstructionsValidateBeforeCall( + GetNLInstructionsRequest getNLInstructionsRequest, final ApiCallback _callback) + throws ApiException { + // verify the required parameter 'getNLInstructionsRequest' is set + if (getNLInstructionsRequest == null) { + throw new ApiException( + "Missing the required parameter 'getNLInstructionsRequest' when calling" + + " getNLInstructions(Async)"); + } + + return getNLInstructionsCall(getNLInstructionsRequest, _callback); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) + * instructions for a specific data-model. These instructions guide the AI system in + * understanding data context and generating more accurate responses when processing natural + * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @param getNLInstructionsRequest (required) + * @return EurekaGetNLInstructionsResponse + * @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 -
+ */ + public EurekaGetNLInstructionsResponse getNLInstructions( + GetNLInstructionsRequest getNLInstructionsRequest) throws ApiException { + ApiResponse localVarResp = + getNLInstructionsWithHttpInfo(getNLInstructionsRequest); + return localVarResp.getData(); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) + * instructions for a specific data-model. These instructions guide the AI system in + * understanding data context and generating more accurate responses when processing natural + * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @param getNLInstructionsRequest (required) + * @return ApiResponse<EurekaGetNLInstructionsResponse> + * @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 -
+ */ + public ApiResponse getNLInstructionsWithHttpInfo( + GetNLInstructionsRequest getNLInstructionsRequest) throws ApiException { + okhttp3.Call localVarCall = + getNLInstructionsValidateBeforeCall(getNLInstructionsRequest, null); + Type localVarReturnType = new TypeToken() {}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * (asynchronously) Version: 10.15.0.cl or later This API allows users to retrieve existing + * natural language (NL) instructions for a specific data-model. These instructions guide the AI + * system in understanding data context and generating more accurate responses when processing + * natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, + * the request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @param getNLInstructionsRequest (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 + * @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 getNLInstructionsAsync( + GetNLInstructionsRequest getNLInstructionsRequest, + final ApiCallback _callback) + throws ApiException { + + okhttp3.Call localVarCall = + getNLInstructionsValidateBeforeCall(getNLInstructionsRequest, _callback); + Type localVarReturnType = new TypeToken() {}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getObjectAccessToken * @@ -16837,11 +17104,12 @@ private okhttp3.Call parameterizeMetadataValidateBeforeCall( * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing * fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the * metadata object. The API endpoint allows parameterizing the following types of metadata - * objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field + * type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName + * * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @param parameterizeMetadataRequest (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the @@ -16866,11 +17134,12 @@ public void parameterizeMetadata(ParameterizeMetadataRequest parameterizeMetadat * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing * fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the * metadata object. The API endpoint allows parameterizing the following types of metadata - * objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field + * type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName + * * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @param parameterizeMetadataRequest (required) * @return ApiResponse<Void> @@ -16898,11 +17167,12 @@ public ApiResponse parameterizeMetadataWithHttpInfo( * (asynchronously) Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows * parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to * modify the metadata object. The API endpoint allows parameterizing the following types of - * metadata objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the + * field type must be `ATTRIBUTE` and field name can be one of: * databaseName * + * schemaName * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @param parameterizeMetadataRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -21920,6 +22190,224 @@ public okhttp3.Call sendMessageAsync( localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for setNLInstructions + * + * @param setNLInstructionsRequest (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 setNLInstructionsCall( + SetNLInstructionsRequest setNLInstructionsRequest, 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 = setNLInstructionsRequest; + + // create path and map variables + String localVarPath = "/api/rest/2.0/ai/instructions/set"; + + 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 setNLInstructionsValidateBeforeCall( + SetNLInstructionsRequest setNLInstructionsRequest, final ApiCallback _callback) + throws ApiException { + // verify the required parameter 'setNLInstructionsRequest' is set + if (setNLInstructionsRequest == null) { + throw new ApiException( + "Missing the required parameter 'setNLInstructionsRequest' when calling" + + " setNLInstructions(Async)"); + } + + return setNLInstructionsCall(setNLInstructionsRequest, _callback); + } + + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions + * for a specific data-model to improve AI-generated answers and query processing. These + * instructions help guide the AI system to better understand the data context and provide more + * accurate responses. #### Usage guidelines To set NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model for which to set NL instructions - `nl_instructions_info`: An array of + * instruction objects, each containing: - `instructions`: Array of text instructions + * for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently + * only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + * The API returns a response object with: - `success`: Boolean indicating whether the + * operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply + * globally for that data-model across the system > ###### Note: > * To use this API, the + * user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must + * use corresponding org related bearerToken where the data-model exists. > * This endpoint + * is currently in Beta. Breaking changes may be introduced before the endpoint is made + * Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint + * requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > + * * Instructions help improve the accuracy and relevance of AI-generated responses for the + * specified data-model. + * + * @param setNLInstructionsRequest (required) + * @return EurekaSetNLInstructionsResponse + * @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 -
+ */ + public EurekaSetNLInstructionsResponse setNLInstructions( + SetNLInstructionsRequest setNLInstructionsRequest) throws ApiException { + ApiResponse localVarResp = + setNLInstructionsWithHttpInfo(setNLInstructionsRequest); + return localVarResp.getData(); + } + + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions + * for a specific data-model to improve AI-generated answers and query processing. These + * instructions help guide the AI system to better understand the data context and provide more + * accurate responses. #### Usage guidelines To set NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model for which to set NL instructions - `nl_instructions_info`: An array of + * instruction objects, each containing: - `instructions`: Array of text instructions + * for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently + * only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + * The API returns a response object with: - `success`: Boolean indicating whether the + * operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply + * globally for that data-model across the system > ###### Note: > * To use this API, the + * user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must + * use corresponding org related bearerToken where the data-model exists. > * This endpoint + * is currently in Beta. Breaking changes may be introduced before the endpoint is made + * Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint + * requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > + * * Instructions help improve the accuracy and relevance of AI-generated responses for the + * specified data-model. + * + * @param setNLInstructionsRequest (required) + * @return ApiResponse<EurekaSetNLInstructionsResponse> + * @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 -
+ */ + public ApiResponse setNLInstructionsWithHttpInfo( + SetNLInstructionsRequest setNLInstructionsRequest) throws ApiException { + okhttp3.Call localVarCall = + setNLInstructionsValidateBeforeCall(setNLInstructionsRequest, null); + Type localVarReturnType = new TypeToken() {}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * (asynchronously) Version: 10.15.0.cl or later This API allows users to set natural language + * (NL) instructions for a specific data-model to improve AI-generated answers and query + * processing. These instructions help guide the AI system to better understand the data context + * and provide more accurate responses. #### Usage guidelines To set NL instructions for a + * data-model, the request must include: - `data_source_identifier`: The unique ID or + * name of the data-model for which to set NL instructions - `nl_instructions_info`: + * An array of instruction objects, each containing: - `instructions`: Array of text + * instructions for the LLM - `scope`: The scope of the instruction + * (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to + * data-model-user scope in future. The API returns a response object with: - + * `success`: Boolean indicating whether the operation was successful #### + * Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across + * the system > ###### Note: > * To use this API, the user needs either edit access or + * SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related + * bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking + * changes may be introduced before the endpoint is made Generally Available. > * Available + * from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact + * ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the + * accuracy and relevance of AI-generated responses for the specified data-model. + * + * @param setNLInstructionsRequest (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 + * @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 setNLInstructionsAsync( + SetNLInstructionsRequest setNLInstructionsRequest, + final ApiCallback _callback) + throws ApiException { + + okhttp3.Call localVarCall = + setNLInstructionsValidateBeforeCall(setNLInstructionsRequest, _callback); + Type localVarReturnType = new TypeToken() {}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for shareMetadata * @@ -22532,11 +23020,12 @@ private okhttp3.Call unparameterizeMetadataValidateBeforeCall( * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows * removing parameterization from fields in metadata objects in ThoughtSpot. Requires * appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @param unparameterizeMetadataRequest (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the @@ -22561,11 +23050,12 @@ public void unparameterizeMetadata(UnparameterizeMetadataRequest unparameterizeM * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows * removing parameterization from fields in metadata objects in ThoughtSpot. Requires * appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @param unparameterizeMetadataRequest (required) * @return ApiResponse<Void> @@ -22593,11 +23083,12 @@ public ApiResponse unparameterizeMetadataWithHttpInfo( * (asynchronously) Remove parameterization from fields in metadata objects. Version: 10.9.0.cl * or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. * Requires appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @param unparameterizeMetadataRequest (required) * @param _callback The callback to be executed when the API call finishes @@ -23894,8 +24385,11 @@ private okhttp3.Call updateConnectionConfigurationValidateBeforeCall( * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * @@ -23931,8 +24425,11 @@ public void updateConnectionConfiguration( * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * @@ -23971,8 +24468,11 @@ public ApiResponse updateConnectionConfigurationWithHttpInfo( * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * @@ -25144,22 +25644,26 @@ private okhttp3.Call updateEmailCustomizationValidateBeforeCall( * #### Usage guidelines To update a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param updateEmailCustomizationRequest (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the @@ -25190,22 +25694,26 @@ public void updateEmailCustomization( * #### Usage guidelines To update a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param updateEmailCustomizationRequest (required) * @return ApiResponse<Void> @@ -25239,22 +25747,26 @@ public ApiResponse updateEmailCustomizationWithHttpInfo( * this on your instance. #### Usage guidelines To update a custom configuration pass these * parameters in your API request: - A JSON map of configuration attributes * `template_properties`. The following example shows a sample set of customization - * configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", - * \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": - * \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : - * \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * configuration: ``` { { \"cta_button_bg_color\": + * \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", + * \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @param updateEmailCustomizationRequest (required) * @param _callback The callback to be executed when the API call finishes diff --git a/sdks/java/src/main/java/com/thoughtspot/client/api/VariableApi.java b/sdks/java/src/main/java/com/thoughtspot/client/api/VariableApi.java index 192121e4a..3f1a19eb3 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/api/VariableApi.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/api/VariableApi.java @@ -177,11 +177,11 @@ private okhttp3.Call createVariableValidateBeforeCall( * 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 + * this. * FORMULA_VARIABLE - For Formula variables, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user + * lacks required permissions * The variable name already exists * The variable type is invalid * * @param createVariableRequest (required) * @return Variable @@ -212,11 +212,11 @@ public Variable createVariable(CreateVariableRequest createVariableRequest) * 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 + * this. * FORMULA_VARIABLE - For Formula variables, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user + * lacks required permissions * The variable name already exists * The variable type is invalid * * @param createVariableRequest (required) * @return ApiResponse<Variable> @@ -248,12 +248,12 @@ public ApiResponse createVariableWithHttpInfo( * 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 + * this please contact support to enable this. * FORMULA_VARIABLE - For Formula variables, + * introduced in 10.15.0.cl 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 formula variables (defaults to null) + * The operation will fail if: * The user lacks required permissions * The variable name already + * exists * The variable type is invalid * * @param createVariableRequest (required) * @param _callback The callback to be executed when the API call finishes diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateEmailCustomisationResponse.java b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateEmailCustomisationResponse.java deleted file mode 100644 index 97e3d5b5f..000000000 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateEmailCustomisationResponse.java +++ /dev/null @@ -1,313 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.thoughtspot.client.JSON; -import java.io.IOException; -import java.io.Serializable; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** CreateEmailCustomisationResponse */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class CreateEmailCustomisationResponse implements Serializable { - private static final long serialVersionUID = 1L; - - public static final String SERIALIZED_NAME_TENANT_ID = "tenant_id"; - - @SerializedName(SERIALIZED_NAME_TENANT_ID) - @javax.annotation.Nonnull - private String tenantId; - - public static final String SERIALIZED_NAME_ORG = "org"; - - @SerializedName(SERIALIZED_NAME_ORG) - @javax.annotation.Nonnull - private OrgType org; - - public static final String SERIALIZED_NAME_NAME = "name"; - - @SerializedName(SERIALIZED_NAME_NAME) - @javax.annotation.Nonnull - private String name; - - public static final String SERIALIZED_NAME_TEMPLATE_PROPERTIES = "template_properties"; - - @SerializedName(SERIALIZED_NAME_TEMPLATE_PROPERTIES) - @javax.annotation.Nonnull - private Object templateProperties; - - public CreateEmailCustomisationResponse() {} - - public CreateEmailCustomisationResponse tenantId(@javax.annotation.Nonnull String tenantId) { - this.tenantId = tenantId; - return this; - } - - /** - * Tenant ID - * - * @return tenantId - */ - @javax.annotation.Nonnull - public String getTenantId() { - return tenantId; - } - - public void setTenantId(@javax.annotation.Nonnull String tenantId) { - this.tenantId = tenantId; - } - - public CreateEmailCustomisationResponse org(@javax.annotation.Nonnull OrgType org) { - this.org = org; - return this; - } - - /** - * Get org - * - * @return org - */ - @javax.annotation.Nonnull - public OrgType getOrg() { - return org; - } - - public void setOrg(@javax.annotation.Nonnull OrgType org) { - this.org = org; - } - - public CreateEmailCustomisationResponse name(@javax.annotation.Nonnull String name) { - this.name = name; - return this; - } - - /** - * Email customization name. - * - * @return name - */ - @javax.annotation.Nonnull - public String getName() { - return name; - } - - public void setName(@javax.annotation.Nonnull String name) { - this.name = name; - } - - public CreateEmailCustomisationResponse templateProperties( - @javax.annotation.Nonnull Object templateProperties) { - this.templateProperties = templateProperties; - return this; - } - - /** - * Customization configuration for the email - * - * @return templateProperties - */ - @javax.annotation.Nonnull - public Object getTemplateProperties() { - return templateProperties; - } - - public void setTemplateProperties(@javax.annotation.Nonnull Object templateProperties) { - this.templateProperties = templateProperties; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - CreateEmailCustomisationResponse createEmailCustomisationResponse = - (CreateEmailCustomisationResponse) o; - return Objects.equals(this.tenantId, createEmailCustomisationResponse.tenantId) - && Objects.equals(this.org, createEmailCustomisationResponse.org) - && Objects.equals(this.name, createEmailCustomisationResponse.name) - && Objects.equals( - this.templateProperties, - createEmailCustomisationResponse.templateProperties); - } - - @Override - public int hashCode() { - return Objects.hash(tenantId, org, name, templateProperties); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class CreateEmailCustomisationResponse {\n"); - sb.append(" tenantId: ").append(toIndentedString(tenantId)).append("\n"); - sb.append(" org: ").append(toIndentedString(org)).append("\n"); - sb.append(" name: ").append(toIndentedString(name)).append("\n"); - sb.append(" templateProperties: ") - .append(toIndentedString(templateProperties)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first - * line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("tenant_id"); - openapiFields.add("org"); - openapiFields.add("name"); - openapiFields.add("template_properties"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("tenant_id"); - openapiRequiredFields.add("org"); - openapiRequiredFields.add("name"); - openapiRequiredFields.add("template_properties"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to - * CreateEmailCustomisationResponse - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!CreateEmailCustomisationResponse.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in CreateEmailCustomisationResponse is" - + " not found in the empty JSON string", - CreateEmailCustomisationResponse.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!CreateEmailCustomisationResponse.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the" - + " `CreateEmailCustomisationResponse` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : CreateEmailCustomisationResponse.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("tenant_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `tenant_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("tenant_id").toString())); - } - // validate the required field `org` - OrgType.validateJsonElement(jsonObj.get("org")); - if (!jsonObj.get("name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `name` to be a primitive type in the JSON string" - + " but got `%s`", - jsonObj.get("name").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!CreateEmailCustomisationResponse.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'CreateEmailCustomisationResponse' and - // its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter( - this, TypeToken.get(CreateEmailCustomisationResponse.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, CreateEmailCustomisationResponse value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public CreateEmailCustomisationResponse read(JsonReader in) - throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of CreateEmailCustomisationResponse given an JSON string - * - * @param jsonString JSON string - * @return An instance of CreateEmailCustomisationResponse - * @throws IOException if the JSON string is invalid with respect to - * CreateEmailCustomisationResponse - */ - public static CreateEmailCustomisationResponse fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, CreateEmailCustomisationResponse.class); - } - - /** - * Convert an instance of CreateEmailCustomisationResponse to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateRoleRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateRoleRequest.java index 49f125710..24d336103 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateRoleRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateRoleRequest.java @@ -110,6 +110,8 @@ public enum PrivilegesEnum { PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateUserGroupRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateUserGroupRequest.java index 1b1a5b4d9..7dea7066b 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateUserGroupRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateUserGroupRequest.java @@ -111,6 +111,8 @@ public enum PrivilegesEnum { CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateVariableRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateVariableRequest.java index 93c20458a..3d91741f5 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateVariableRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/CreateVariableRequest.java @@ -38,7 +38,9 @@ public enum TypeEnum { TABLE_MAPPING("TABLE_MAPPING"), - CONNECTION_PROPERTY_PER_PRINCIPAL("CONNECTION_PROPERTY_PER_PRINCIPAL"); + CONNECTION_PROPERTY_PER_PRINCIPAL("CONNECTION_PROPERTY_PER_PRINCIPAL"), + + FORMULA_VARIABLE("FORMULA_VARIABLE"); private String value; diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/DbtConnectionRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/DbtConnectionRequest.java deleted file mode 100644 index da070b96b..000000000 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/DbtConnectionRequest.java +++ /dev/null @@ -1,590 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.thoughtspot.client.JSON; -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** DbtConnectionRequest */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DbtConnectionRequest implements Serializable { - private static final long serialVersionUID = 1L; - - public static final String SERIALIZED_NAME_CONNECTION_NAME = "connection_name"; - - @SerializedName(SERIALIZED_NAME_CONNECTION_NAME) - @javax.annotation.Nonnull - private String connectionName; - - public static final String SERIALIZED_NAME_DATABASE_NAME = "database_name"; - - @SerializedName(SERIALIZED_NAME_DATABASE_NAME) - @javax.annotation.Nonnull - private String databaseName; - - /** Mention type of Import */ - @JsonAdapter(ImportTypeEnum.Adapter.class) - public enum ImportTypeEnum { - DBT_CLOUD("DBT_CLOUD"), - - ZIP_FILE("ZIP_FILE"); - - private String value; - - ImportTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static ImportTypeEnum fromValue(String value) { - for (ImportTypeEnum b : ImportTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final ImportTypeEnum enumeration) - throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public ImportTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return ImportTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - ImportTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_IMPORT_TYPE = "import_type"; - - @SerializedName(SERIALIZED_NAME_IMPORT_TYPE) - @javax.annotation.Nullable - private ImportTypeEnum importType = ImportTypeEnum.DBT_CLOUD; - - public static final String SERIALIZED_NAME_ACCESS_TOKEN = "access_token"; - - @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) - @javax.annotation.Nullable - private String accessToken; - - public static final String SERIALIZED_NAME_DBT_URL = "dbt_url"; - - @SerializedName(SERIALIZED_NAME_DBT_URL) - @javax.annotation.Nullable - private String dbtUrl; - - public static final String SERIALIZED_NAME_ACCOUNT_ID = "account_id"; - - @SerializedName(SERIALIZED_NAME_ACCOUNT_ID) - @javax.annotation.Nullable - private String accountId; - - public static final String SERIALIZED_NAME_PROJECT_ID = "project_id"; - - @SerializedName(SERIALIZED_NAME_PROJECT_ID) - @javax.annotation.Nullable - private String projectId; - - public static final String SERIALIZED_NAME_DBT_ENV_ID = "dbt_env_id"; - - @SerializedName(SERIALIZED_NAME_DBT_ENV_ID) - @javax.annotation.Nullable - private String dbtEnvId; - - public static final String SERIALIZED_NAME_PROJECT_NAME = "project_name"; - - @SerializedName(SERIALIZED_NAME_PROJECT_NAME) - @javax.annotation.Nullable - private String projectName; - - public static final String SERIALIZED_NAME_FILE_CONTENT = "file_content"; - - @SerializedName(SERIALIZED_NAME_FILE_CONTENT) - @javax.annotation.Nullable - private File fileContent; - - public DbtConnectionRequest() {} - - public DbtConnectionRequest connectionName(@javax.annotation.Nonnull String connectionName) { - this.connectionName = connectionName; - return this; - } - - /** - * Name of the connection. - * - * @return connectionName - */ - @javax.annotation.Nonnull - public String getConnectionName() { - return connectionName; - } - - public void setConnectionName(@javax.annotation.Nonnull String connectionName) { - this.connectionName = connectionName; - } - - public DbtConnectionRequest databaseName(@javax.annotation.Nonnull String databaseName) { - this.databaseName = databaseName; - return this; - } - - /** - * Name of the Database. - * - * @return databaseName - */ - @javax.annotation.Nonnull - public String getDatabaseName() { - return databaseName; - } - - public void setDatabaseName(@javax.annotation.Nonnull String databaseName) { - this.databaseName = databaseName; - } - - public DbtConnectionRequest importType(@javax.annotation.Nullable ImportTypeEnum importType) { - this.importType = importType; - return this; - } - - /** - * Mention type of Import - * - * @return importType - */ - @javax.annotation.Nullable - public ImportTypeEnum getImportType() { - return importType; - } - - public void setImportType(@javax.annotation.Nullable ImportTypeEnum importType) { - this.importType = importType; - } - - public DbtConnectionRequest accessToken(@javax.annotation.Nullable String accessToken) { - this.accessToken = accessToken; - return this; - } - - /** - * Access token is mandatory when Import_Type is DBT_CLOUD. - * - * @return accessToken - */ - @javax.annotation.Nullable - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(@javax.annotation.Nullable String accessToken) { - this.accessToken = accessToken; - } - - public DbtConnectionRequest dbtUrl(@javax.annotation.Nullable String dbtUrl) { - this.dbtUrl = dbtUrl; - return this; - } - - /** - * DBT URL is mandatory when Import_Type is DBT_CLOUD. - * - * @return dbtUrl - */ - @javax.annotation.Nullable - public String getDbtUrl() { - return dbtUrl; - } - - public void setDbtUrl(@javax.annotation.Nullable String dbtUrl) { - this.dbtUrl = dbtUrl; - } - - public DbtConnectionRequest accountId(@javax.annotation.Nullable String accountId) { - this.accountId = accountId; - return this; - } - - /** - * Account ID is mandatory when Import_Type is DBT_CLOUD - * - * @return accountId - */ - @javax.annotation.Nullable - public String getAccountId() { - return accountId; - } - - public void setAccountId(@javax.annotation.Nullable String accountId) { - this.accountId = accountId; - } - - public DbtConnectionRequest projectId(@javax.annotation.Nullable String projectId) { - this.projectId = projectId; - return this; - } - - /** - * Project ID is mandatory when Import_Type is DBT_CLOUD - * - * @return projectId - */ - @javax.annotation.Nullable - public String getProjectId() { - return projectId; - } - - public void setProjectId(@javax.annotation.Nullable String projectId) { - this.projectId = projectId; - } - - public DbtConnectionRequest dbtEnvId(@javax.annotation.Nullable String dbtEnvId) { - this.dbtEnvId = dbtEnvId; - return this; - } - - /** - * DBT Environment ID\" - * - * @return dbtEnvId - */ - @javax.annotation.Nullable - public String getDbtEnvId() { - return dbtEnvId; - } - - public void setDbtEnvId(@javax.annotation.Nullable String dbtEnvId) { - this.dbtEnvId = dbtEnvId; - } - - public DbtConnectionRequest projectName(@javax.annotation.Nullable String projectName) { - this.projectName = projectName; - return this; - } - - /** - * Name of the project - * - * @return projectName - */ - @javax.annotation.Nullable - public String getProjectName() { - return projectName; - } - - public void setProjectName(@javax.annotation.Nullable String projectName) { - this.projectName = projectName; - } - - public DbtConnectionRequest fileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - return this; - } - - /** - * Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when - * Import Type is 'ZIP_FILE' - * - * @return fileContent - */ - @javax.annotation.Nullable - public File getFileContent() { - return fileContent; - } - - public void setFileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DbtConnectionRequest dbtConnectionRequest = (DbtConnectionRequest) o; - return Objects.equals(this.connectionName, dbtConnectionRequest.connectionName) - && Objects.equals(this.databaseName, dbtConnectionRequest.databaseName) - && Objects.equals(this.importType, dbtConnectionRequest.importType) - && Objects.equals(this.accessToken, dbtConnectionRequest.accessToken) - && Objects.equals(this.dbtUrl, dbtConnectionRequest.dbtUrl) - && Objects.equals(this.accountId, dbtConnectionRequest.accountId) - && Objects.equals(this.projectId, dbtConnectionRequest.projectId) - && Objects.equals(this.dbtEnvId, dbtConnectionRequest.dbtEnvId) - && Objects.equals(this.projectName, dbtConnectionRequest.projectName) - && Objects.equals(this.fileContent, dbtConnectionRequest.fileContent); - } - - @Override - public int hashCode() { - return Objects.hash( - connectionName, - databaseName, - importType, - accessToken, - dbtUrl, - accountId, - projectId, - dbtEnvId, - projectName, - fileContent); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DbtConnectionRequest {\n"); - sb.append(" connectionName: ").append(toIndentedString(connectionName)).append("\n"); - sb.append(" databaseName: ").append(toIndentedString(databaseName)).append("\n"); - sb.append(" importType: ").append(toIndentedString(importType)).append("\n"); - sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); - sb.append(" dbtUrl: ").append(toIndentedString(dbtUrl)).append("\n"); - sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); - sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); - sb.append(" dbtEnvId: ").append(toIndentedString(dbtEnvId)).append("\n"); - sb.append(" projectName: ").append(toIndentedString(projectName)).append("\n"); - sb.append(" fileContent: ").append(toIndentedString(fileContent)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first - * line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("connection_name"); - openapiFields.add("database_name"); - openapiFields.add("import_type"); - openapiFields.add("access_token"); - openapiFields.add("dbt_url"); - openapiFields.add("account_id"); - openapiFields.add("project_id"); - openapiFields.add("dbt_env_id"); - openapiFields.add("project_name"); - openapiFields.add("file_content"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("connection_name"); - openapiRequiredFields.add("database_name"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to DbtConnectionRequest - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!DbtConnectionRequest.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in DbtConnectionRequest is not found in" - + " the empty JSON string", - DbtConnectionRequest.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!DbtConnectionRequest.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the" - + " `DbtConnectionRequest` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : DbtConnectionRequest.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("connection_name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `connection_name` to be a primitive type in the" - + " JSON string but got `%s`", - jsonObj.get("connection_name").toString())); - } - if (!jsonObj.get("database_name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `database_name` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("database_name").toString())); - } - if ((jsonObj.get("import_type") != null && !jsonObj.get("import_type").isJsonNull()) - && !jsonObj.get("import_type").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `import_type` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("import_type").toString())); - } - // validate the optional field `import_type` - if (jsonObj.get("import_type") != null && !jsonObj.get("import_type").isJsonNull()) { - ImportTypeEnum.validateJsonElement(jsonObj.get("import_type")); - } - if ((jsonObj.get("access_token") != null && !jsonObj.get("access_token").isJsonNull()) - && !jsonObj.get("access_token").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `access_token` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("access_token").toString())); - } - if ((jsonObj.get("dbt_url") != null && !jsonObj.get("dbt_url").isJsonNull()) - && !jsonObj.get("dbt_url").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `dbt_url` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("dbt_url").toString())); - } - if ((jsonObj.get("account_id") != null && !jsonObj.get("account_id").isJsonNull()) - && !jsonObj.get("account_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `account_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("account_id").toString())); - } - if ((jsonObj.get("project_id") != null && !jsonObj.get("project_id").isJsonNull()) - && !jsonObj.get("project_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `project_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("project_id").toString())); - } - if ((jsonObj.get("dbt_env_id") != null && !jsonObj.get("dbt_env_id").isJsonNull()) - && !jsonObj.get("dbt_env_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `dbt_env_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("dbt_env_id").toString())); - } - if ((jsonObj.get("project_name") != null && !jsonObj.get("project_name").isJsonNull()) - && !jsonObj.get("project_name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `project_name` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("project_name").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DbtConnectionRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DbtConnectionRequest' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DbtConnectionRequest.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DbtConnectionRequest value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public DbtConnectionRequest read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of DbtConnectionRequest given an JSON string - * - * @param jsonString JSON string - * @return An instance of DbtConnectionRequest - * @throws IOException if the JSON string is invalid with respect to DbtConnectionRequest - */ - public static DbtConnectionRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DbtConnectionRequest.class); - } - - /** - * Convert an instance of DbtConnectionRequest to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/DbtGenerateTmlRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/DbtGenerateTmlRequest.java deleted file mode 100644 index 6b87fce15..000000000 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/DbtGenerateTmlRequest.java +++ /dev/null @@ -1,442 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.thoughtspot.client.JSON; -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** DbtGenerateTmlRequest */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DbtGenerateTmlRequest implements Serializable { - private static final long serialVersionUID = 1L; - - public static final String SERIALIZED_NAME_DBT_CONNECTION_IDENTIFIER = - "dbt_connection_identifier"; - - @SerializedName(SERIALIZED_NAME_DBT_CONNECTION_IDENTIFIER) - @javax.annotation.Nonnull - private String dbtConnectionIdentifier; - - public static final String SERIALIZED_NAME_MODEL_TABLES = "model_tables"; - - @SerializedName(SERIALIZED_NAME_MODEL_TABLES) - @javax.annotation.Nullable - private List modelTables; - - /** Mention the worksheet tmls to import */ - @JsonAdapter(ImportWorksheetsEnum.Adapter.class) - public enum ImportWorksheetsEnum { - ALL("ALL"), - - NONE("NONE"), - - SELECTED("SELECTED"); - - private String value; - - ImportWorksheetsEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static ImportWorksheetsEnum fromValue(String value) { - for (ImportWorksheetsEnum b : ImportWorksheetsEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final ImportWorksheetsEnum enumeration) - throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public ImportWorksheetsEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return ImportWorksheetsEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - ImportWorksheetsEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_IMPORT_WORKSHEETS = "import_worksheets"; - - @SerializedName(SERIALIZED_NAME_IMPORT_WORKSHEETS) - @javax.annotation.Nonnull - private ImportWorksheetsEnum importWorksheets; - - public static final String SERIALIZED_NAME_WORKSHEETS = "worksheets"; - - @SerializedName(SERIALIZED_NAME_WORKSHEETS) - @javax.annotation.Nullable - private List worksheets; - - public static final String SERIALIZED_NAME_FILE_CONTENT = "file_content"; - - @SerializedName(SERIALIZED_NAME_FILE_CONTENT) - @javax.annotation.Nullable - private File fileContent; - - public DbtGenerateTmlRequest() {} - - public DbtGenerateTmlRequest dbtConnectionIdentifier( - @javax.annotation.Nonnull String dbtConnectionIdentifier) { - this.dbtConnectionIdentifier = dbtConnectionIdentifier; - return this; - } - - /** - * Unique ID of the DBT connection. - * - * @return dbtConnectionIdentifier - */ - @javax.annotation.Nonnull - public String getDbtConnectionIdentifier() { - return dbtConnectionIdentifier; - } - - public void setDbtConnectionIdentifier( - @javax.annotation.Nonnull String dbtConnectionIdentifier) { - this.dbtConnectionIdentifier = dbtConnectionIdentifier; - } - - public DbtGenerateTmlRequest modelTables( - @javax.annotation.Nullable List modelTables) { - this.modelTables = modelTables; - return this; - } - - public DbtGenerateTmlRequest addModelTablesItem(ModelTableList modelTablesItem) { - if (this.modelTables == null) { - this.modelTables = new ArrayList<>(); - } - this.modelTables.add(modelTablesItem); - return this; - } - - /** - * List of Models and their respective Tables - * - * @return modelTables - */ - @javax.annotation.Nullable - public List getModelTables() { - return modelTables; - } - - public void setModelTables(@javax.annotation.Nullable List modelTables) { - this.modelTables = modelTables; - } - - public DbtGenerateTmlRequest importWorksheets( - @javax.annotation.Nonnull ImportWorksheetsEnum importWorksheets) { - this.importWorksheets = importWorksheets; - return this; - } - - /** - * Mention the worksheet tmls to import - * - * @return importWorksheets - */ - @javax.annotation.Nonnull - public ImportWorksheetsEnum getImportWorksheets() { - return importWorksheets; - } - - public void setImportWorksheets( - @javax.annotation.Nonnull ImportWorksheetsEnum importWorksheets) { - this.importWorksheets = importWorksheets; - } - - public DbtGenerateTmlRequest worksheets(@javax.annotation.Nullable List worksheets) { - this.worksheets = worksheets; - return this; - } - - public DbtGenerateTmlRequest addWorksheetsItem(String worksheetsItem) { - if (this.worksheets == null) { - this.worksheets = new ArrayList<>(); - } - this.worksheets.add(worksheetsItem); - return this; - } - - /** - * List of worksheets is mandatory when import_Worksheets is type SELECTED - * - * @return worksheets - */ - @javax.annotation.Nullable - public List getWorksheets() { - return worksheets; - } - - public void setWorksheets(@javax.annotation.Nullable List worksheets) { - this.worksheets = worksheets; - } - - public DbtGenerateTmlRequest fileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - return this; - } - - /** - * 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’ - * - * @return fileContent - */ - @javax.annotation.Nullable - public File getFileContent() { - return fileContent; - } - - public void setFileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DbtGenerateTmlRequest dbtGenerateTmlRequest = (DbtGenerateTmlRequest) o; - return Objects.equals( - this.dbtConnectionIdentifier, dbtGenerateTmlRequest.dbtConnectionIdentifier) - && Objects.equals(this.modelTables, dbtGenerateTmlRequest.modelTables) - && Objects.equals(this.importWorksheets, dbtGenerateTmlRequest.importWorksheets) - && Objects.equals(this.worksheets, dbtGenerateTmlRequest.worksheets) - && Objects.equals(this.fileContent, dbtGenerateTmlRequest.fileContent); - } - - @Override - public int hashCode() { - return Objects.hash( - dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DbtGenerateTmlRequest {\n"); - sb.append(" dbtConnectionIdentifier: ") - .append(toIndentedString(dbtConnectionIdentifier)) - .append("\n"); - sb.append(" modelTables: ").append(toIndentedString(modelTables)).append("\n"); - sb.append(" importWorksheets: ").append(toIndentedString(importWorksheets)).append("\n"); - sb.append(" worksheets: ").append(toIndentedString(worksheets)).append("\n"); - sb.append(" fileContent: ").append(toIndentedString(fileContent)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first - * line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("dbt_connection_identifier"); - openapiFields.add("model_tables"); - openapiFields.add("import_worksheets"); - openapiFields.add("worksheets"); - openapiFields.add("file_content"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("dbt_connection_identifier"); - openapiRequiredFields.add("import_worksheets"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to DbtGenerateTmlRequest - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!DbtGenerateTmlRequest.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in DbtGenerateTmlRequest is not found in" - + " the empty JSON string", - DbtGenerateTmlRequest.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!DbtGenerateTmlRequest.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the" - + " `DbtGenerateTmlRequest` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : DbtGenerateTmlRequest.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("dbt_connection_identifier").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `dbt_connection_identifier` to be a primitive type" - + " in the JSON string but got `%s`", - jsonObj.get("dbt_connection_identifier").toString())); - } - if (jsonObj.get("model_tables") != null && !jsonObj.get("model_tables").isJsonNull()) { - JsonArray jsonArraymodelTables = jsonObj.getAsJsonArray("model_tables"); - if (jsonArraymodelTables != null) { - // ensure the json data is an array - if (!jsonObj.get("model_tables").isJsonArray()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `model_tables` to be an array in the JSON" - + " string but got `%s`", - jsonObj.get("model_tables").toString())); - } - - // validate the optional field `model_tables` (array) - for (int i = 0; i < jsonArraymodelTables.size(); i++) { - ModelTableList.validateJsonElement(jsonArraymodelTables.get(i)); - } - ; - } - } - if (!jsonObj.get("import_worksheets").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `import_worksheets` to be a primitive type in the" - + " JSON string but got `%s`", - jsonObj.get("import_worksheets").toString())); - } - // validate the required field `import_worksheets` - ImportWorksheetsEnum.validateJsonElement(jsonObj.get("import_worksheets")); - // ensure the optional json data is an array if present - if (jsonObj.get("worksheets") != null - && !jsonObj.get("worksheets").isJsonNull() - && !jsonObj.get("worksheets").isJsonArray()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `worksheets` to be an array in the JSON string but" - + " got `%s`", - jsonObj.get("worksheets").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DbtGenerateTmlRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DbtGenerateTmlRequest' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DbtGenerateTmlRequest.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DbtGenerateTmlRequest value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public DbtGenerateTmlRequest read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of DbtGenerateTmlRequest given an JSON string - * - * @param jsonString JSON string - * @return An instance of DbtGenerateTmlRequest - * @throws IOException if the JSON string is invalid with respect to DbtGenerateTmlRequest - */ - public static DbtGenerateTmlRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DbtGenerateTmlRequest.class); - } - - /** - * Convert an instance of DbtGenerateTmlRequest to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/EurekaGetNLInstructionsResponse.java b/sdks/java/src/main/java/com/thoughtspot/client/model/EurekaGetNLInstructionsResponse.java new file mode 100644 index 000000000..9ebe94ec2 --- /dev/null +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/EurekaGetNLInstructionsResponse.java @@ -0,0 +1,237 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.thoughtspot.client.JSON; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** EurekaGetNLInstructionsResponse */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class EurekaGetNLInstructionsResponse implements Serializable { + private static final long serialVersionUID = 1L; + + public static final String SERIALIZED_NAME_NL_INSTRUCTIONS_INFO = "nl_instructions_info"; + + @SerializedName(SERIALIZED_NAME_NL_INSTRUCTIONS_INFO) + @javax.annotation.Nonnull + private List nlInstructionsInfo; + + public EurekaGetNLInstructionsResponse() {} + + public EurekaGetNLInstructionsResponse nlInstructionsInfo( + @javax.annotation.Nonnull List nlInstructionsInfo) { + this.nlInstructionsInfo = nlInstructionsInfo; + return this; + } + + public EurekaGetNLInstructionsResponse addNlInstructionsInfoItem( + NLInstructionsInfo nlInstructionsInfoItem) { + if (this.nlInstructionsInfo == null) { + this.nlInstructionsInfo = new ArrayList<>(); + } + this.nlInstructionsInfo.add(nlInstructionsInfoItem); + return this; + } + + /** + * List of NL instructions with their scopes. + * + * @return nlInstructionsInfo + */ + @javax.annotation.Nonnull + public List getNlInstructionsInfo() { + return nlInstructionsInfo; + } + + public void setNlInstructionsInfo( + @javax.annotation.Nonnull List nlInstructionsInfo) { + this.nlInstructionsInfo = nlInstructionsInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EurekaGetNLInstructionsResponse eurekaGetNLInstructionsResponse = + (EurekaGetNLInstructionsResponse) o; + return Objects.equals( + this.nlInstructionsInfo, eurekaGetNLInstructionsResponse.nlInstructionsInfo); + } + + @Override + public int hashCode() { + return Objects.hash(nlInstructionsInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EurekaGetNLInstructionsResponse {\n"); + sb.append(" nlInstructionsInfo: ") + .append(toIndentedString(nlInstructionsInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("nl_instructions_info"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("nl_instructions_info"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * EurekaGetNLInstructionsResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EurekaGetNLInstructionsResponse.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in EurekaGetNLInstructionsResponse is" + + " not found in the empty JSON string", + EurekaGetNLInstructionsResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EurekaGetNLInstructionsResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the" + + " `EurekaGetNLInstructionsResponse` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : EurekaGetNLInstructionsResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("nl_instructions_info").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `nl_instructions_info` to be an array in the JSON" + + " string but got `%s`", + jsonObj.get("nl_instructions_info").toString())); + } + + JsonArray jsonArraynlInstructionsInfo = jsonObj.getAsJsonArray("nl_instructions_info"); + // validate the required field `nl_instructions_info` (array) + for (int i = 0; i < jsonArraynlInstructionsInfo.size(); i++) { + NLInstructionsInfo.validateJsonElement(jsonArraynlInstructionsInfo.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EurekaGetNLInstructionsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EurekaGetNLInstructionsResponse' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter( + this, TypeToken.get(EurekaGetNLInstructionsResponse.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, EurekaGetNLInstructionsResponse value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EurekaGetNLInstructionsResponse read(JsonReader in) + throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of EurekaGetNLInstructionsResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of EurekaGetNLInstructionsResponse + * @throws IOException if the JSON string is invalid with respect to + * EurekaGetNLInstructionsResponse + */ + public static EurekaGetNLInstructionsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EurekaGetNLInstructionsResponse.class); + } + + /** + * Convert an instance of EurekaGetNLInstructionsResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateEmailCustomisationRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/EurekaSetNLInstructionsResponse.java similarity index 64% rename from sdks/java/src/main/java/com/thoughtspot/client/model/CreateEmailCustomisationRequest.java rename to sdks/java/src/main/java/com/thoughtspot/client/model/EurekaSetNLInstructionsResponse.java index 020a9fa89..273836f29 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/CreateEmailCustomisationRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/EurekaSetNLInstructionsResponse.java @@ -21,39 +21,38 @@ import java.util.Objects; import java.util.Set; -/** CreateEmailCustomisationRequest */ +/** EurekaSetNLInstructionsResponse */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") -public class CreateEmailCustomisationRequest implements Serializable { +public class EurekaSetNLInstructionsResponse implements Serializable { private static final long serialVersionUID = 1L; - public static final String SERIALIZED_NAME_TEMPLATE_PROPERTIES = "template_properties"; + public static final String SERIALIZED_NAME_SUCCESS = "success"; - @SerializedName(SERIALIZED_NAME_TEMPLATE_PROPERTIES) + @SerializedName(SERIALIZED_NAME_SUCCESS) @javax.annotation.Nonnull - private Object templateProperties; + private Boolean success; - public CreateEmailCustomisationRequest() {} + public EurekaSetNLInstructionsResponse() {} - public CreateEmailCustomisationRequest templateProperties( - @javax.annotation.Nonnull Object templateProperties) { - this.templateProperties = templateProperties; + public EurekaSetNLInstructionsResponse success(@javax.annotation.Nonnull Boolean success) { + this.success = success; return this; } /** - * Email customization configuration as key value pair + * Success status of the operation. * - * @return templateProperties + * @return success */ @javax.annotation.Nonnull - public Object getTemplateProperties() { - return templateProperties; + public Boolean getSuccess() { + return success; } - public void setTemplateProperties(@javax.annotation.Nonnull Object templateProperties) { - this.templateProperties = templateProperties; + public void setSuccess(@javax.annotation.Nonnull Boolean success) { + this.success = success; } @Override @@ -64,24 +63,21 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - CreateEmailCustomisationRequest createEmailCustomisationRequest = - (CreateEmailCustomisationRequest) o; - return Objects.equals( - this.templateProperties, createEmailCustomisationRequest.templateProperties); + EurekaSetNLInstructionsResponse eurekaSetNLInstructionsResponse = + (EurekaSetNLInstructionsResponse) o; + return Objects.equals(this.success, eurekaSetNLInstructionsResponse.success); } @Override public int hashCode() { - return Objects.hash(templateProperties); + return Objects.hash(success); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class CreateEmailCustomisationRequest {\n"); - sb.append(" templateProperties: ") - .append(toIndentedString(templateProperties)) - .append("\n"); + sb.append("class EurekaSetNLInstructionsResponse {\n"); + sb.append(" success: ").append(toIndentedString(success)).append("\n"); sb.append("}"); return sb.toString(); } @@ -103,11 +99,11 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("template_properties"); + openapiFields.add("success"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("template_properties"); + openapiRequiredFields.add("success"); } /** @@ -115,34 +111,34 @@ private String toIndentedString(Object o) { * * @param jsonElement JSON Element * @throws IOException if the JSON Element is invalid with respect to - * CreateEmailCustomisationRequest + * EurekaSetNLInstructionsResponse */ public static void validateJsonElement(JsonElement jsonElement) throws IOException { if (jsonElement == null) { - if (!CreateEmailCustomisationRequest.openapiRequiredFields + if (!EurekaSetNLInstructionsResponse.openapiRequiredFields .isEmpty()) { // has required fields but JSON element is null throw new IllegalArgumentException( String.format( - "The required field(s) %s in CreateEmailCustomisationRequest is" + "The required field(s) %s in EurekaSetNLInstructionsResponse is" + " not found in the empty JSON string", - CreateEmailCustomisationRequest.openapiRequiredFields.toString())); + EurekaSetNLInstructionsResponse.openapiRequiredFields.toString())); } } Set> entries = jsonElement.getAsJsonObject().entrySet(); // check to see if the JSON string contains additional fields for (Map.Entry entry : entries) { - if (!CreateEmailCustomisationRequest.openapiFields.contains(entry.getKey())) { + if (!EurekaSetNLInstructionsResponse.openapiFields.contains(entry.getKey())) { throw new IllegalArgumentException( String.format( "The field `%s` in the JSON string is not defined in the" - + " `CreateEmailCustomisationRequest` properties. JSON: %s", + + " `EurekaSetNLInstructionsResponse` properties. JSON: %s", entry.getKey(), jsonElement.toString())); } } // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : CreateEmailCustomisationRequest.openapiRequiredFields) { + for (String requiredField : EurekaSetNLInstructionsResponse.openapiRequiredFields) { if (jsonElement.getAsJsonObject().get(requiredField) == null) { throw new IllegalArgumentException( String.format( @@ -157,26 +153,26 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!CreateEmailCustomisationRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'CreateEmailCustomisationRequest' and its + if (!EurekaSetNLInstructionsResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EurekaSetNLInstructionsResponse' and its // subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = + final TypeAdapter thisAdapter = gson.getDelegateAdapter( - this, TypeToken.get(CreateEmailCustomisationRequest.class)); + this, TypeToken.get(EurekaSetNLInstructionsResponse.class)); return (TypeAdapter) - new TypeAdapter() { + new TypeAdapter() { @Override - public void write(JsonWriter out, CreateEmailCustomisationRequest value) + public void write(JsonWriter out, EurekaSetNLInstructionsResponse value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); elementAdapter.write(out, obj); } @Override - public CreateEmailCustomisationRequest read(JsonReader in) + public EurekaSetNLInstructionsResponse read(JsonReader in) throws IOException { JsonElement jsonElement = elementAdapter.read(in); validateJsonElement(jsonElement); @@ -187,19 +183,19 @@ public CreateEmailCustomisationRequest read(JsonReader in) } /** - * Create an instance of CreateEmailCustomisationRequest given an JSON string + * Create an instance of EurekaSetNLInstructionsResponse given an JSON string * * @param jsonString JSON string - * @return An instance of CreateEmailCustomisationRequest + * @return An instance of EurekaSetNLInstructionsResponse * @throws IOException if the JSON string is invalid with respect to - * CreateEmailCustomisationRequest + * EurekaSetNLInstructionsResponse */ - public static CreateEmailCustomisationRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, CreateEmailCustomisationRequest.class); + public static EurekaSetNLInstructionsResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EurekaSetNLInstructionsResponse.class); } /** - * Convert an instance of CreateEmailCustomisationRequest to an JSON string + * Convert an instance of EurekaSetNLInstructionsResponse to an JSON string * * @return JSON string */ diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/GetCustomAccessTokenRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/GetCustomAccessTokenRequest.java index 8c9a76129..cb0e354bc 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/GetCustomAccessTokenRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/GetCustomAccessTokenRequest.java @@ -64,7 +64,10 @@ public class GetCustomAccessTokenRequest implements Serializable { @javax.annotation.Nullable private String orgIdentifier; - /** Indicates whether the specified attributes should be persisted or not. */ + /** + * Indicates whether the specified attributes should be persisted or not. RESET and NONE are not + * applicable if you are setting variable_values. + */ @JsonAdapter(PersistOptionEnum.Adapter.class) public enum PersistOptionEnum { REPLACE("REPLACE"), @@ -137,6 +140,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @javax.annotation.Nullable private List parameterValues; + public static final String SERIALIZED_NAME_VARIABLE_VALUES = "variable_values"; + + @SerializedName(SERIALIZED_NAME_VARIABLE_VALUES) + @javax.annotation.Nullable + private List variableValues; + public static final String SERIALIZED_NAME_OBJECTS = "objects"; @SerializedName(SERIALIZED_NAME_OBJECTS) @@ -278,7 +287,8 @@ public GetCustomAccessTokenRequest persistOption( } /** - * Indicates whether the specified attributes should be persisted or not. + * Indicates whether the specified attributes should be persisted or not. RESET and NONE are not + * applicable if you are setting variable_values. * * @return persistOption */ @@ -348,6 +358,35 @@ public void setParameterValues( this.parameterValues = parameterValues; } + public GetCustomAccessTokenRequest variableValues( + @javax.annotation.Nullable List variableValues) { + this.variableValues = variableValues; + return this; + } + + public GetCustomAccessTokenRequest addVariableValuesItem(VariableValues variableValuesItem) { + if (this.variableValues == null) { + this.variableValues = new ArrayList<>(); + } + this.variableValues.add(variableValuesItem); + return this; + } + + /** + * List of variable values where `name` references an existing formula variable and + * `values` is any value from the corresponding column. Version: 10.14.0.cl or later + * + * @return variableValues + */ + @javax.annotation.Nullable + public List getVariableValues() { + return variableValues; + } + + public void setVariableValues(@javax.annotation.Nullable List variableValues) { + this.variableValues = variableValues; + } + public GetCustomAccessTokenRequest objects( @javax.annotation.Nullable List objects) { this.objects = objects; @@ -452,7 +491,8 @@ public GetCustomAccessTokenRequest autoCreate(@javax.annotation.Nullable 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. Version: 10.5.0.cl or later + * the secret_key is required. New formula variables won't be created. Version: 10.5.0.cl or + * later * * @return autoCreate */ @@ -483,6 +523,7 @@ public boolean equals(Object o) { && Objects.equals(this.persistOption, getCustomAccessTokenRequest.persistOption) && Objects.equals(this.filterRules, getCustomAccessTokenRequest.filterRules) && Objects.equals(this.parameterValues, getCustomAccessTokenRequest.parameterValues) + && Objects.equals(this.variableValues, getCustomAccessTokenRequest.variableValues) && Objects.equals(this.objects, getCustomAccessTokenRequest.objects) && Objects.equals(this.email, getCustomAccessTokenRequest.email) && Objects.equals(this.displayName, getCustomAccessTokenRequest.displayName) @@ -510,6 +551,7 @@ public int hashCode() { persistOption, filterRules, parameterValues, + variableValues, objects, email, displayName, @@ -538,6 +580,7 @@ public String toString() { sb.append(" persistOption: ").append(toIndentedString(persistOption)).append("\n"); sb.append(" filterRules: ").append(toIndentedString(filterRules)).append("\n"); sb.append(" parameterValues: ").append(toIndentedString(parameterValues)).append("\n"); + sb.append(" variableValues: ").append(toIndentedString(variableValues)).append("\n"); sb.append(" objects: ").append(toIndentedString(objects)).append("\n"); sb.append(" email: ").append(toIndentedString(email)).append("\n"); sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); @@ -572,6 +615,7 @@ private String toIndentedString(Object o) { openapiFields.add("persist_option"); openapiFields.add("filter_rules"); openapiFields.add("parameter_values"); + openapiFields.add("variable_values"); openapiFields.add("objects"); openapiFields.add("email"); openapiFields.add("display_name"); @@ -704,6 +748,26 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti ; } } + if (jsonObj.get("variable_values") != null + && !jsonObj.get("variable_values").isJsonNull()) { + JsonArray jsonArrayvariableValues = jsonObj.getAsJsonArray("variable_values"); + if (jsonArrayvariableValues != null) { + // ensure the json data is an array + if (!jsonObj.get("variable_values").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `variable_values` to be an array in the" + + " JSON string but got `%s`", + jsonObj.get("variable_values").toString())); + } + + // validate the optional field `variable_values` (array) + for (int i = 0; i < jsonArrayvariableValues.size(); i++) { + VariableValues.validateJsonElement(jsonArrayvariableValues.get(i)); + } + ; + } + } if (jsonObj.get("objects") != null && !jsonObj.get("objects").isJsonNull()) { JsonArray jsonArrayobjects = jsonObj.getAsJsonArray("objects"); if (jsonArrayobjects != null) { diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/DbtGenerateSyncTmlRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/GetNLInstructionsRequest.java similarity index 53% rename from sdks/java/src/main/java/com/thoughtspot/client/model/DbtGenerateSyncTmlRequest.java rename to sdks/java/src/main/java/com/thoughtspot/client/model/GetNLInstructionsRequest.java index 1896b16cb..00d0394ac 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/DbtGenerateSyncTmlRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/GetNLInstructionsRequest.java @@ -14,7 +14,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.thoughtspot.client.JSON; -import java.io.File; import java.io.IOException; import java.io.Serializable; import java.util.HashSet; @@ -22,67 +21,39 @@ import java.util.Objects; import java.util.Set; -/** DbtGenerateSyncTmlRequest */ +/** GetNLInstructionsRequest */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") -public class DbtGenerateSyncTmlRequest implements Serializable { +public class GetNLInstructionsRequest implements Serializable { private static final long serialVersionUID = 1L; - public static final String SERIALIZED_NAME_DBT_CONNECTION_IDENTIFIER = - "dbt_connection_identifier"; + public static final String SERIALIZED_NAME_DATA_SOURCE_IDENTIFIER = "data_source_identifier"; - @SerializedName(SERIALIZED_NAME_DBT_CONNECTION_IDENTIFIER) + @SerializedName(SERIALIZED_NAME_DATA_SOURCE_IDENTIFIER) @javax.annotation.Nonnull - private String dbtConnectionIdentifier; + private String dataSourceIdentifier; - public static final String SERIALIZED_NAME_FILE_CONTENT = "file_content"; + public GetNLInstructionsRequest() {} - @SerializedName(SERIALIZED_NAME_FILE_CONTENT) - @javax.annotation.Nullable - private File fileContent; - - public DbtGenerateSyncTmlRequest() {} - - public DbtGenerateSyncTmlRequest dbtConnectionIdentifier( - @javax.annotation.Nonnull String dbtConnectionIdentifier) { - this.dbtConnectionIdentifier = dbtConnectionIdentifier; + public GetNLInstructionsRequest dataSourceIdentifier( + @javax.annotation.Nonnull String dataSourceIdentifier) { + this.dataSourceIdentifier = dataSourceIdentifier; return this; } /** - * Unique ID of the DBT connection. + * Unique ID or name of the data-model for which to retrieve NL instructions. * - * @return dbtConnectionIdentifier + * @return dataSourceIdentifier */ @javax.annotation.Nonnull - public String getDbtConnectionIdentifier() { - return dbtConnectionIdentifier; - } - - public void setDbtConnectionIdentifier( - @javax.annotation.Nonnull String dbtConnectionIdentifier) { - this.dbtConnectionIdentifier = dbtConnectionIdentifier; - } - - public DbtGenerateSyncTmlRequest fileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - return this; - } - - /** - * 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’ - * - * @return fileContent - */ - @javax.annotation.Nullable - public File getFileContent() { - return fileContent; + public String getDataSourceIdentifier() { + return dataSourceIdentifier; } - public void setFileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; + public void setDataSourceIdentifier(@javax.annotation.Nonnull String dataSourceIdentifier) { + this.dataSourceIdentifier = dataSourceIdentifier; } @Override @@ -93,26 +64,23 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - DbtGenerateSyncTmlRequest dbtGenerateSyncTmlRequest = (DbtGenerateSyncTmlRequest) o; + GetNLInstructionsRequest getNLInstructionsRequest = (GetNLInstructionsRequest) o; return Objects.equals( - this.dbtConnectionIdentifier, - dbtGenerateSyncTmlRequest.dbtConnectionIdentifier) - && Objects.equals(this.fileContent, dbtGenerateSyncTmlRequest.fileContent); + this.dataSourceIdentifier, getNLInstructionsRequest.dataSourceIdentifier); } @Override public int hashCode() { - return Objects.hash(dbtConnectionIdentifier, fileContent); + return Objects.hash(dataSourceIdentifier); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class DbtGenerateSyncTmlRequest {\n"); - sb.append(" dbtConnectionIdentifier: ") - .append(toIndentedString(dbtConnectionIdentifier)) + sb.append("class GetNLInstructionsRequest {\n"); + sb.append(" dataSourceIdentifier: ") + .append(toIndentedString(dataSourceIdentifier)) .append("\n"); - sb.append(" fileContent: ").append(toIndentedString(fileContent)).append("\n"); sb.append("}"); return sb.toString(); } @@ -134,46 +102,45 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("dbt_connection_identifier"); - openapiFields.add("file_content"); + openapiFields.add("data_source_identifier"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("dbt_connection_identifier"); + openapiRequiredFields.add("data_source_identifier"); } /** * Validates the JSON Element and throws an exception if issues found * * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to DbtGenerateSyncTmlRequest + * @throws IOException if the JSON Element is invalid with respect to GetNLInstructionsRequest */ public static void validateJsonElement(JsonElement jsonElement) throws IOException { if (jsonElement == null) { - if (!DbtGenerateSyncTmlRequest.openapiRequiredFields + if (!GetNLInstructionsRequest.openapiRequiredFields .isEmpty()) { // has required fields but JSON element is null throw new IllegalArgumentException( String.format( - "The required field(s) %s in DbtGenerateSyncTmlRequest is not" - + " found in the empty JSON string", - DbtGenerateSyncTmlRequest.openapiRequiredFields.toString())); + "The required field(s) %s in GetNLInstructionsRequest is not found" + + " in the empty JSON string", + GetNLInstructionsRequest.openapiRequiredFields.toString())); } } Set> entries = jsonElement.getAsJsonObject().entrySet(); // check to see if the JSON string contains additional fields for (Map.Entry entry : entries) { - if (!DbtGenerateSyncTmlRequest.openapiFields.contains(entry.getKey())) { + if (!GetNLInstructionsRequest.openapiFields.contains(entry.getKey())) { throw new IllegalArgumentException( String.format( "The field `%s` in the JSON string is not defined in the" - + " `DbtGenerateSyncTmlRequest` properties. JSON: %s", + + " `GetNLInstructionsRequest` properties. JSON: %s", entry.getKey(), jsonElement.toString())); } } // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : DbtGenerateSyncTmlRequest.openapiRequiredFields) { + for (String requiredField : GetNLInstructionsRequest.openapiRequiredFields) { if (jsonElement.getAsJsonObject().get(requiredField) == null) { throw new IllegalArgumentException( String.format( @@ -182,12 +149,12 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("dbt_connection_identifier").isJsonPrimitive()) { + if (!jsonObj.get("data_source_identifier").isJsonPrimitive()) { throw new IllegalArgumentException( String.format( - "Expected the field `dbt_connection_identifier` to be a primitive type" - + " in the JSON string but got `%s`", - jsonObj.get("dbt_connection_identifier").toString())); + "Expected the field `data_source_identifier` to be a primitive type in" + + " the JSON string but got `%s`", + jsonObj.get("data_source_identifier").toString())); } } @@ -195,25 +162,25 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!DbtGenerateSyncTmlRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DbtGenerateSyncTmlRequest' and its + if (!GetNLInstructionsRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetNLInstructionsRequest' and its // subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DbtGenerateSyncTmlRequest.class)); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GetNLInstructionsRequest.class)); return (TypeAdapter) - new TypeAdapter() { + new TypeAdapter() { @Override - public void write(JsonWriter out, DbtGenerateSyncTmlRequest value) + public void write(JsonWriter out, GetNLInstructionsRequest value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); elementAdapter.write(out, obj); } @Override - public DbtGenerateSyncTmlRequest read(JsonReader in) throws IOException { + public GetNLInstructionsRequest read(JsonReader in) throws IOException { JsonElement jsonElement = elementAdapter.read(in); validateJsonElement(jsonElement); return thisAdapter.fromJsonTree(jsonElement); @@ -223,18 +190,18 @@ public DbtGenerateSyncTmlRequest read(JsonReader in) throws IOException { } /** - * Create an instance of DbtGenerateSyncTmlRequest given an JSON string + * Create an instance of GetNLInstructionsRequest given an JSON string * * @param jsonString JSON string - * @return An instance of DbtGenerateSyncTmlRequest - * @throws IOException if the JSON string is invalid with respect to DbtGenerateSyncTmlRequest + * @return An instance of GetNLInstructionsRequest + * @throws IOException if the JSON string is invalid with respect to GetNLInstructionsRequest */ - public static DbtGenerateSyncTmlRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DbtGenerateSyncTmlRequest.class); + public static GetNLInstructionsRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetNLInstructionsRequest.class); } /** - * Convert an instance of DbtGenerateSyncTmlRequest to an JSON string + * Convert an instance of GetNLInstructionsRequest to an JSON string * * @return JSON string */ diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/GroupsImportListInput.java b/sdks/java/src/main/java/com/thoughtspot/client/model/GroupsImportListInput.java index 82700b689..bca594ff4 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/GroupsImportListInput.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/GroupsImportListInput.java @@ -113,6 +113,8 @@ public enum PrivilegesEnum { CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/InputVariableValue.java b/sdks/java/src/main/java/com/thoughtspot/client/model/InputVariableValue.java deleted file mode 100644 index a51eaa9c9..000000000 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/InputVariableValue.java +++ /dev/null @@ -1,422 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.thoughtspot.client.JSON; -import java.io.IOException; -import java.io.Serializable; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import org.openapitools.jackson.nullable.JsonNullable; - -/** InputVariableValue */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class InputVariableValue implements Serializable { - private static final long serialVersionUID = 1L; - - public static final String SERIALIZED_NAME_VALUE = "value"; - - @SerializedName(SERIALIZED_NAME_VALUE) - @javax.annotation.Nonnull - private String value; - - public static final String SERIALIZED_NAME_ORG_IDENTIFIER = "org_identifier"; - - @SerializedName(SERIALIZED_NAME_ORG_IDENTIFIER) - @javax.annotation.Nonnull - private String orgIdentifier; - - /** Principal type */ - @JsonAdapter(PrincipalTypeEnum.Adapter.class) - public enum PrincipalTypeEnum { - USER("USER"), - - USER_GROUP("USER_GROUP"); - - private String value; - - PrincipalTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static PrincipalTypeEnum fromValue(String value) { - for (PrincipalTypeEnum b : PrincipalTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - return null; - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final PrincipalTypeEnum enumeration) - throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public PrincipalTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return PrincipalTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - PrincipalTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_PRINCIPAL_TYPE = "principal_type"; - - @SerializedName(SERIALIZED_NAME_PRINCIPAL_TYPE) - @javax.annotation.Nullable - private PrincipalTypeEnum principalType; - - public static final String SERIALIZED_NAME_PRINCIPAL_IDENTIFIER = "principal_identifier"; - - @SerializedName(SERIALIZED_NAME_PRINCIPAL_IDENTIFIER) - @javax.annotation.Nullable - private String principalIdentifier; - - public static final String SERIALIZED_NAME_PRIORITY = "priority"; - - @SerializedName(SERIALIZED_NAME_PRIORITY) - @javax.annotation.Nullable - private Integer priority; - - public InputVariableValue() {} - - public InputVariableValue value(@javax.annotation.Nonnull String value) { - this.value = value; - return this; - } - - /** - * The connection property value - * - * @return value - */ - @javax.annotation.Nonnull - public String getValue() { - return value; - } - - public void setValue(@javax.annotation.Nonnull String value) { - this.value = value; - } - - public InputVariableValue orgIdentifier(@javax.annotation.Nonnull String orgIdentifier) { - this.orgIdentifier = orgIdentifier; - return this; - } - - /** - * The unique name of the org - * - * @return orgIdentifier - */ - @javax.annotation.Nonnull - public String getOrgIdentifier() { - return orgIdentifier; - } - - public void setOrgIdentifier(@javax.annotation.Nonnull String orgIdentifier) { - this.orgIdentifier = orgIdentifier; - } - - public InputVariableValue principalType( - @javax.annotation.Nullable PrincipalTypeEnum principalType) { - this.principalType = principalType; - return this; - } - - /** - * Principal type - * - * @return principalType - */ - @javax.annotation.Nullable - public PrincipalTypeEnum getPrincipalType() { - return principalType; - } - - public void setPrincipalType(@javax.annotation.Nullable PrincipalTypeEnum principalType) { - this.principalType = principalType; - } - - public InputVariableValue principalIdentifier( - @javax.annotation.Nullable String principalIdentifier) { - this.principalIdentifier = principalIdentifier; - return this; - } - - /** - * Unique ID or name of the principal - * - * @return principalIdentifier - */ - @javax.annotation.Nullable - public String getPrincipalIdentifier() { - return principalIdentifier; - } - - public void setPrincipalIdentifier(@javax.annotation.Nullable String principalIdentifier) { - this.principalIdentifier = principalIdentifier; - } - - public InputVariableValue priority(@javax.annotation.Nullable Integer priority) { - this.priority = priority; - return this; - } - - /** - * The priority assigned to this value. If there are 2 matching values, the one with the higher - * priority will be picked. - * - * @return priority - */ - @javax.annotation.Nullable - public Integer getPriority() { - return priority; - } - - public void setPriority(@javax.annotation.Nullable Integer priority) { - this.priority = priority; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - InputVariableValue inputVariableValue = (InputVariableValue) o; - return Objects.equals(this.value, inputVariableValue.value) - && Objects.equals(this.orgIdentifier, inputVariableValue.orgIdentifier) - && Objects.equals(this.principalType, inputVariableValue.principalType) - && Objects.equals(this.principalIdentifier, inputVariableValue.principalIdentifier) - && Objects.equals(this.priority, inputVariableValue.priority); - } - - private static boolean equalsNullable(JsonNullable a, JsonNullable b) { - return a == b - || (a != null - && b != null - && a.isPresent() - && b.isPresent() - && Objects.deepEquals(a.get(), b.get())); - } - - @Override - public int hashCode() { - return Objects.hash(value, orgIdentifier, principalType, principalIdentifier, priority); - } - - private static int hashCodeNullable(JsonNullable a) { - if (a == null) { - return 1; - } - return a.isPresent() ? Arrays.deepHashCode(new Object[] {a.get()}) : 31; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class InputVariableValue {\n"); - sb.append(" value: ").append(toIndentedString(value)).append("\n"); - sb.append(" orgIdentifier: ").append(toIndentedString(orgIdentifier)).append("\n"); - sb.append(" principalType: ").append(toIndentedString(principalType)).append("\n"); - sb.append(" principalIdentifier: ") - .append(toIndentedString(principalIdentifier)) - .append("\n"); - sb.append(" priority: ").append(toIndentedString(priority)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first - * line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("value"); - openapiFields.add("org_identifier"); - openapiFields.add("principal_type"); - openapiFields.add("principal_identifier"); - openapiFields.add("priority"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("value"); - openapiRequiredFields.add("org_identifier"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to InputVariableValue - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!InputVariableValue.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in InputVariableValue is not found in" - + " the empty JSON string", - InputVariableValue.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!InputVariableValue.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the" - + " `InputVariableValue` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : InputVariableValue.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("value").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `value` to be a primitive type in the JSON string" - + " but got `%s`", - jsonObj.get("value").toString())); - } - if (!jsonObj.get("org_identifier").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `org_identifier` to be a primitive type in the" - + " JSON string but got `%s`", - jsonObj.get("org_identifier").toString())); - } - if ((jsonObj.get("principal_type") != null && !jsonObj.get("principal_type").isJsonNull()) - && !jsonObj.get("principal_type").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `principal_type` to be a primitive type in the" - + " JSON string but got `%s`", - jsonObj.get("principal_type").toString())); - } - // validate the optional field `principal_type` - if (jsonObj.get("principal_type") != null && !jsonObj.get("principal_type").isJsonNull()) { - PrincipalTypeEnum.validateJsonElement(jsonObj.get("principal_type")); - } - if ((jsonObj.get("principal_identifier") != null - && !jsonObj.get("principal_identifier").isJsonNull()) - && !jsonObj.get("principal_identifier").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `principal_identifier` to be a primitive type in" - + " the JSON string but got `%s`", - jsonObj.get("principal_identifier").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!InputVariableValue.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'InputVariableValue' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(InputVariableValue.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, InputVariableValue value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public InputVariableValue read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of InputVariableValue given an JSON string - * - * @param jsonString JSON string - * @return An instance of InputVariableValue - * @throws IOException if the JSON string is invalid with respect to InputVariableValue - */ - public static InputVariableValue fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, InputVariableValue.class); - } - - /** - * Convert an instance of InputVariableValue to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/NLInstructionsInfo.java b/sdks/java/src/main/java/com/thoughtspot/client/model/NLInstructionsInfo.java new file mode 100644 index 000000000..878ce3e6f --- /dev/null +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/NLInstructionsInfo.java @@ -0,0 +1,309 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.thoughtspot.client.JSON; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** NLInstructionsInfo */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class NLInstructionsInfo implements Serializable { + private static final long serialVersionUID = 1L; + + public static final String SERIALIZED_NAME_INSTRUCTIONS = "instructions"; + + @SerializedName(SERIALIZED_NAME_INSTRUCTIONS) + @javax.annotation.Nonnull + private List instructions; + + /** Scope of the instruction. */ + @JsonAdapter(ScopeEnum.Adapter.class) + public enum ScopeEnum { + GLOBAL("GLOBAL"); + + private String value; + + ScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ScopeEnum fromValue(String value) { + for (ScopeEnum b : ScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ScopeEnum enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SCOPE = "scope"; + + @SerializedName(SERIALIZED_NAME_SCOPE) + @javax.annotation.Nonnull + private ScopeEnum scope; + + public NLInstructionsInfo() {} + + public NLInstructionsInfo instructions(@javax.annotation.Nonnull List instructions) { + this.instructions = instructions; + return this; + } + + public NLInstructionsInfo addInstructionsItem(String instructionsItem) { + if (this.instructions == null) { + this.instructions = new ArrayList<>(); + } + this.instructions.add(instructionsItem); + return this; + } + + /** + * User instructions for natural language processing. + * + * @return instructions + */ + @javax.annotation.Nonnull + public List getInstructions() { + return instructions; + } + + public void setInstructions(@javax.annotation.Nonnull List instructions) { + this.instructions = instructions; + } + + public NLInstructionsInfo scope(@javax.annotation.Nonnull ScopeEnum scope) { + this.scope = scope; + return this; + } + + /** + * Scope of the instruction. + * + * @return scope + */ + @javax.annotation.Nonnull + public ScopeEnum getScope() { + return scope; + } + + public void setScope(@javax.annotation.Nonnull ScopeEnum scope) { + this.scope = scope; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NLInstructionsInfo nlInstructionsInfo = (NLInstructionsInfo) o; + return Objects.equals(this.instructions, nlInstructionsInfo.instructions) + && Objects.equals(this.scope, nlInstructionsInfo.scope); + } + + @Override + public int hashCode() { + return Objects.hash(instructions, scope); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NLInstructionsInfo {\n"); + sb.append(" instructions: ").append(toIndentedString(instructions)).append("\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("instructions"); + openapiFields.add("scope"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("instructions"); + openapiRequiredFields.add("scope"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NLInstructionsInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NLInstructionsInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in NLInstructionsInfo is not found in" + + " the empty JSON string", + NLInstructionsInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NLInstructionsInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the" + + " `NLInstructionsInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NLInstructionsInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("instructions") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got" + + " `null`"); + } else if (!jsonObj.get("instructions").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `instructions` to be an array in the JSON string" + + " but got `%s`", + jsonObj.get("instructions").toString())); + } + if (!jsonObj.get("scope").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `scope` to be a primitive type in the JSON string" + + " but got `%s`", + jsonObj.get("scope").toString())); + } + // validate the required field `scope` + ScopeEnum.validateJsonElement(jsonObj.get("scope")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NLInstructionsInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NLInstructionsInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(NLInstructionsInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, NLInstructionsInfo value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NLInstructionsInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of NLInstructionsInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of NLInstructionsInfo + * @throws IOException if the JSON string is invalid with respect to NLInstructionsInfo + */ + public static NLInstructionsInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NLInstructionsInfo.class); + } + + /** + * Convert an instance of NLInstructionsInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/NLInstructionsInfoInput.java b/sdks/java/src/main/java/com/thoughtspot/client/model/NLInstructionsInfoInput.java new file mode 100644 index 000000000..58b0cf938 --- /dev/null +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/NLInstructionsInfoInput.java @@ -0,0 +1,311 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.thoughtspot.client.JSON; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** NLInstructionsInfoInput */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class NLInstructionsInfoInput implements Serializable { + private static final long serialVersionUID = 1L; + + public static final String SERIALIZED_NAME_INSTRUCTIONS = "instructions"; + + @SerializedName(SERIALIZED_NAME_INSTRUCTIONS) + @javax.annotation.Nonnull + private List instructions; + + /** Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. */ + @JsonAdapter(ScopeEnum.Adapter.class) + public enum ScopeEnum { + GLOBAL("GLOBAL"); + + private String value; + + ScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ScopeEnum fromValue(String value) { + for (ScopeEnum b : ScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ScopeEnum enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ScopeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + ScopeEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_SCOPE = "scope"; + + @SerializedName(SERIALIZED_NAME_SCOPE) + @javax.annotation.Nonnull + private ScopeEnum scope; + + public NLInstructionsInfoInput() {} + + public NLInstructionsInfoInput instructions( + @javax.annotation.Nonnull List instructions) { + this.instructions = instructions; + return this; + } + + public NLInstructionsInfoInput addInstructionsItem(String instructionsItem) { + if (this.instructions == null) { + this.instructions = new ArrayList<>(); + } + this.instructions.add(instructionsItem); + return this; + } + + /** + * User instructions for natural language processing. + * + * @return instructions + */ + @javax.annotation.Nonnull + public List getInstructions() { + return instructions; + } + + public void setInstructions(@javax.annotation.Nonnull List instructions) { + this.instructions = instructions; + } + + public NLInstructionsInfoInput scope(@javax.annotation.Nonnull ScopeEnum scope) { + this.scope = scope; + return this; + } + + /** + * Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. + * + * @return scope + */ + @javax.annotation.Nonnull + public ScopeEnum getScope() { + return scope; + } + + public void setScope(@javax.annotation.Nonnull ScopeEnum scope) { + this.scope = scope; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NLInstructionsInfoInput nlInstructionsInfoInput = (NLInstructionsInfoInput) o; + return Objects.equals(this.instructions, nlInstructionsInfoInput.instructions) + && Objects.equals(this.scope, nlInstructionsInfoInput.scope); + } + + @Override + public int hashCode() { + return Objects.hash(instructions, scope); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class NLInstructionsInfoInput {\n"); + sb.append(" instructions: ").append(toIndentedString(instructions)).append("\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("instructions"); + openapiFields.add("scope"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("instructions"); + openapiRequiredFields.add("scope"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to NLInstructionsInfoInput + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!NLInstructionsInfoInput.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in NLInstructionsInfoInput is not found" + + " in the empty JSON string", + NLInstructionsInfoInput.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!NLInstructionsInfoInput.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the" + + " `NLInstructionsInfoInput` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : NLInstructionsInfoInput.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("instructions") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got" + + " `null`"); + } else if (!jsonObj.get("instructions").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `instructions` to be an array in the JSON string" + + " but got `%s`", + jsonObj.get("instructions").toString())); + } + if (!jsonObj.get("scope").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `scope` to be a primitive type in the JSON string" + + " but got `%s`", + jsonObj.get("scope").toString())); + } + // validate the required field `scope` + ScopeEnum.validateJsonElement(jsonObj.get("scope")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!NLInstructionsInfoInput.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'NLInstructionsInfoInput' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(NLInstructionsInfoInput.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, NLInstructionsInfoInput value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public NLInstructionsInfoInput read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of NLInstructionsInfoInput given an JSON string + * + * @param jsonString JSON string + * @return An instance of NLInstructionsInfoInput + * @throws IOException if the JSON string is invalid with respect to NLInstructionsInfoInput + */ + public static NLInstructionsInfoInput fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, NLInstructionsInfoInput.class); + } + + /** + * Convert an instance of NLInstructionsInfoInput to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/RoleResponse.java b/sdks/java/src/main/java/com/thoughtspot/client/model/RoleResponse.java index f3f0cb37e..e34520df6 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/RoleResponse.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/RoleResponse.java @@ -135,6 +135,8 @@ public enum PrivilegesEnum { PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRoleResponse.java b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRoleResponse.java index 4634034fe..792af5296 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRoleResponse.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRoleResponse.java @@ -163,6 +163,8 @@ public enum PrivilegesEnum { CAN_MODIDY_FOLDERS("CAN_MODIDY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), CAN_SETUP_VERSION_CONTROL("CAN_SETUP_VERSION_CONTROL"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRolesRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRolesRequest.java index 210e488fa..06e4d83da 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRolesRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchRolesRequest.java @@ -144,6 +144,8 @@ public enum PrivilegesEnum { CAN_MODIDY_FOLDERS("CAN_MODIDY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), CAN_SETUP_VERSION_CONTROL("CAN_SETUP_VERSION_CONTROL"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUserGroupsRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUserGroupsRequest.java index 359c6b244..5f396701f 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUserGroupsRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUserGroupsRequest.java @@ -145,6 +145,8 @@ public enum PrivilegesEnum { CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), CAN_SETUP_VERSION_CONTROL("CAN_SETUP_VERSION_CONTROL"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUsersRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUsersRequest.java index f59cdfa5b..0ae507af6 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUsersRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchUsersRequest.java @@ -196,6 +196,8 @@ public enum PrivilegesEnum { CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), CAN_SETUP_VERSION_CONTROL("CAN_SETUP_VERSION_CONTROL"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchVariablesRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchVariablesRequest.java index 5e5846c54..63ff1599d 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/SearchVariablesRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/SearchVariablesRequest.java @@ -57,15 +57,15 @@ public class SearchVariablesRequest implements Serializable { private Integer recordSize = 10; /** Format in which we want the output */ - @JsonAdapter(OutputFormatEnum.Adapter.class) - public enum OutputFormatEnum { - METADATA_ONLY("METADATA_ONLY"), + @JsonAdapter(ResponseContentEnum.Adapter.class) + public enum ResponseContentEnum { + METADATA("METADATA"), METADATA_AND_VALUES("METADATA_AND_VALUES"); private String value; - OutputFormatEnum(String value) { + ResponseContentEnum(String value) { this.value = value; } @@ -78,8 +78,8 @@ public String toString() { return String.valueOf(value); } - public static OutputFormatEnum fromValue(String value) { - for (OutputFormatEnum b : OutputFormatEnum.values()) { + public static ResponseContentEnum fromValue(String value) { + for (ResponseContentEnum b : ResponseContentEnum.values()) { if (b.value.equals(value)) { return b; } @@ -87,31 +87,31 @@ public static OutputFormatEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final OutputFormatEnum enumeration) + public void write(final JsonWriter jsonWriter, final ResponseContentEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public OutputFormatEnum read(final JsonReader jsonReader) throws IOException { + public ResponseContentEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return OutputFormatEnum.fromValue(value); + return ResponseContentEnum.fromValue(value); } } public static void validateJsonElement(JsonElement jsonElement) throws IOException { String value = jsonElement.getAsString(); - OutputFormatEnum.fromValue(value); + ResponseContentEnum.fromValue(value); } } - public static final String SERIALIZED_NAME_OUTPUT_FORMAT = "output_format"; + public static final String SERIALIZED_NAME_RESPONSE_CONTENT = "response_content"; - @SerializedName(SERIALIZED_NAME_OUTPUT_FORMAT) + @SerializedName(SERIALIZED_NAME_RESPONSE_CONTENT) @javax.annotation.Nullable - private OutputFormatEnum outputFormat = OutputFormatEnum.METADATA_ONLY; + private ResponseContentEnum responseContent = ResponseContentEnum.METADATA; public SearchVariablesRequest() {} @@ -210,24 +210,24 @@ public void setRecordSize(@javax.annotation.Nullable Integer recordSize) { this.recordSize = recordSize; } - public SearchVariablesRequest outputFormat( - @javax.annotation.Nullable OutputFormatEnum outputFormat) { - this.outputFormat = outputFormat; + public SearchVariablesRequest responseContent( + @javax.annotation.Nullable ResponseContentEnum responseContent) { + this.responseContent = responseContent; return this; } /** * Format in which we want the output * - * @return outputFormat + * @return responseContent */ @javax.annotation.Nullable - public OutputFormatEnum getOutputFormat() { - return outputFormat; + public ResponseContentEnum getResponseContent() { + return responseContent; } - public void setOutputFormat(@javax.annotation.Nullable OutputFormatEnum outputFormat) { - this.outputFormat = outputFormat; + public void setResponseContent(@javax.annotation.Nullable ResponseContentEnum responseContent) { + this.responseContent = responseContent; } @Override @@ -243,12 +243,12 @@ public boolean equals(Object o) { && Objects.equals(this.valueScope, searchVariablesRequest.valueScope) && Objects.equals(this.recordOffset, searchVariablesRequest.recordOffset) && Objects.equals(this.recordSize, searchVariablesRequest.recordSize) - && Objects.equals(this.outputFormat, searchVariablesRequest.outputFormat); + && Objects.equals(this.responseContent, searchVariablesRequest.responseContent); } @Override public int hashCode() { - return Objects.hash(variableDetails, valueScope, recordOffset, recordSize, outputFormat); + return Objects.hash(variableDetails, valueScope, recordOffset, recordSize, responseContent); } @Override @@ -259,7 +259,7 @@ public String toString() { sb.append(" valueScope: ").append(toIndentedString(valueScope)).append("\n"); sb.append(" recordOffset: ").append(toIndentedString(recordOffset)).append("\n"); sb.append(" recordSize: ").append(toIndentedString(recordSize)).append("\n"); - sb.append(" outputFormat: ").append(toIndentedString(outputFormat)).append("\n"); + sb.append(" responseContent: ").append(toIndentedString(responseContent)).append("\n"); sb.append("}"); return sb.toString(); } @@ -285,7 +285,7 @@ private String toIndentedString(Object o) { openapiFields.add("value_scope"); openapiFields.add("record_offset"); openapiFields.add("record_size"); - openapiFields.add("output_format"); + openapiFields.add("response_content"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -360,17 +360,19 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti ; } } - if ((jsonObj.get("output_format") != null && !jsonObj.get("output_format").isJsonNull()) - && !jsonObj.get("output_format").isJsonPrimitive()) { + if ((jsonObj.get("response_content") != null + && !jsonObj.get("response_content").isJsonNull()) + && !jsonObj.get("response_content").isJsonPrimitive()) { throw new IllegalArgumentException( String.format( - "Expected the field `output_format` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("output_format").toString())); + "Expected the field `response_content` to be a primitive type in the" + + " JSON string but got `%s`", + jsonObj.get("response_content").toString())); } - // validate the optional field `output_format` - if (jsonObj.get("output_format") != null && !jsonObj.get("output_format").isJsonNull()) { - OutputFormatEnum.validateJsonElement(jsonObj.get("output_format")); + // validate the optional field `response_content` + if (jsonObj.get("response_content") != null + && !jsonObj.get("response_content").isJsonNull()) { + ResponseContentEnum.validateJsonElement(jsonObj.get("response_content")); } } diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/SetNLInstructionsRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/SetNLInstructionsRequest.java new file mode 100644 index 000000000..78aa5e4eb --- /dev/null +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/SetNLInstructionsRequest.java @@ -0,0 +1,272 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.thoughtspot.client.JSON; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** SetNLInstructionsRequest */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class SetNLInstructionsRequest implements Serializable { + private static final long serialVersionUID = 1L; + + public static final String SERIALIZED_NAME_DATA_SOURCE_IDENTIFIER = "data_source_identifier"; + + @SerializedName(SERIALIZED_NAME_DATA_SOURCE_IDENTIFIER) + @javax.annotation.Nonnull + private String dataSourceIdentifier; + + public static final String SERIALIZED_NAME_NL_INSTRUCTIONS_INFO = "nl_instructions_info"; + + @SerializedName(SERIALIZED_NAME_NL_INSTRUCTIONS_INFO) + @javax.annotation.Nonnull + private List nlInstructionsInfo; + + public SetNLInstructionsRequest() {} + + public SetNLInstructionsRequest dataSourceIdentifier( + @javax.annotation.Nonnull String dataSourceIdentifier) { + this.dataSourceIdentifier = dataSourceIdentifier; + return this; + } + + /** + * Unique ID or name of the data-model for which to set NL instructions. + * + * @return dataSourceIdentifier + */ + @javax.annotation.Nonnull + public String getDataSourceIdentifier() { + return dataSourceIdentifier; + } + + public void setDataSourceIdentifier(@javax.annotation.Nonnull String dataSourceIdentifier) { + this.dataSourceIdentifier = dataSourceIdentifier; + } + + public SetNLInstructionsRequest nlInstructionsInfo( + @javax.annotation.Nonnull List nlInstructionsInfo) { + this.nlInstructionsInfo = nlInstructionsInfo; + return this; + } + + public SetNLInstructionsRequest addNlInstructionsInfoItem( + NLInstructionsInfoInput nlInstructionsInfoItem) { + if (this.nlInstructionsInfo == null) { + this.nlInstructionsInfo = new ArrayList<>(); + } + this.nlInstructionsInfo.add(nlInstructionsInfoItem); + return this; + } + + /** + * List of NL instructions to set for the data-model. + * + * @return nlInstructionsInfo + */ + @javax.annotation.Nonnull + public List getNlInstructionsInfo() { + return nlInstructionsInfo; + } + + public void setNlInstructionsInfo( + @javax.annotation.Nonnull List nlInstructionsInfo) { + this.nlInstructionsInfo = nlInstructionsInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SetNLInstructionsRequest setNLInstructionsRequest = (SetNLInstructionsRequest) o; + return Objects.equals( + this.dataSourceIdentifier, setNLInstructionsRequest.dataSourceIdentifier) + && Objects.equals( + this.nlInstructionsInfo, setNLInstructionsRequest.nlInstructionsInfo); + } + + @Override + public int hashCode() { + return Objects.hash(dataSourceIdentifier, nlInstructionsInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SetNLInstructionsRequest {\n"); + sb.append(" dataSourceIdentifier: ") + .append(toIndentedString(dataSourceIdentifier)) + .append("\n"); + sb.append(" nlInstructionsInfo: ") + .append(toIndentedString(nlInstructionsInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first + * line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("data_source_identifier"); + openapiFields.add("nl_instructions_info"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("data_source_identifier"); + openapiRequiredFields.add("nl_instructions_info"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SetNLInstructionsRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SetNLInstructionsRequest.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SetNLInstructionsRequest is not found" + + " in the empty JSON string", + SetNLInstructionsRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SetNLInstructionsRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the" + + " `SetNLInstructionsRequest` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SetNLInstructionsRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("data_source_identifier").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `data_source_identifier` to be a primitive type in" + + " the JSON string but got `%s`", + jsonObj.get("data_source_identifier").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("nl_instructions_info").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `nl_instructions_info` to be an array in the JSON" + + " string but got `%s`", + jsonObj.get("nl_instructions_info").toString())); + } + + JsonArray jsonArraynlInstructionsInfo = jsonObj.getAsJsonArray("nl_instructions_info"); + // validate the required field `nl_instructions_info` (array) + for (int i = 0; i < jsonArraynlInstructionsInfo.size(); i++) { + NLInstructionsInfoInput.validateJsonElement(jsonArraynlInstructionsInfo.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SetNLInstructionsRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SetNLInstructionsRequest' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SetNLInstructionsRequest.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SetNLInstructionsRequest value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SetNLInstructionsRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SetNLInstructionsRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of SetNLInstructionsRequest + * @throws IOException if the JSON string is invalid with respect to SetNLInstructionsRequest + */ + public static SetNLInstructionsRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SetNLInstructionsRequest.class); + } + + /** + * Convert an instance of SetNLInstructionsRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateDbtConnectionRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateDbtConnectionRequest.java deleted file mode 100644 index 25c6db8c0..000000000 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateDbtConnectionRequest.java +++ /dev/null @@ -1,637 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.thoughtspot.client.JSON; -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** UpdateDbtConnectionRequest */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class UpdateDbtConnectionRequest implements Serializable { - private static final long serialVersionUID = 1L; - - public static final String SERIALIZED_NAME_DBT_CONNECTION_IDENTIFIER = - "dbt_connection_identifier"; - - @SerializedName(SERIALIZED_NAME_DBT_CONNECTION_IDENTIFIER) - @javax.annotation.Nonnull - private String dbtConnectionIdentifier; - - public static final String SERIALIZED_NAME_CONNECTION_NAME = "connection_name"; - - @SerializedName(SERIALIZED_NAME_CONNECTION_NAME) - @javax.annotation.Nullable - private String connectionName; - - public static final String SERIALIZED_NAME_DATABASE_NAME = "database_name"; - - @SerializedName(SERIALIZED_NAME_DATABASE_NAME) - @javax.annotation.Nullable - private String databaseName; - - /** Mention type of Import */ - @JsonAdapter(ImportTypeEnum.Adapter.class) - public enum ImportTypeEnum { - DBT_CLOUD("DBT_CLOUD"), - - ZIP_FILE("ZIP_FILE"); - - private String value; - - ImportTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static ImportTypeEnum fromValue(String value) { - for (ImportTypeEnum b : ImportTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final ImportTypeEnum enumeration) - throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public ImportTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return ImportTypeEnum.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - String value = jsonElement.getAsString(); - ImportTypeEnum.fromValue(value); - } - } - - public static final String SERIALIZED_NAME_IMPORT_TYPE = "import_type"; - - @SerializedName(SERIALIZED_NAME_IMPORT_TYPE) - @javax.annotation.Nullable - private ImportTypeEnum importType = ImportTypeEnum.DBT_CLOUD; - - public static final String SERIALIZED_NAME_ACCESS_TOKEN = "access_token"; - - @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) - @javax.annotation.Nullable - private String accessToken; - - public static final String SERIALIZED_NAME_DBT_URL = "dbt_url"; - - @SerializedName(SERIALIZED_NAME_DBT_URL) - @javax.annotation.Nullable - private String dbtUrl; - - public static final String SERIALIZED_NAME_ACCOUNT_ID = "account_id"; - - @SerializedName(SERIALIZED_NAME_ACCOUNT_ID) - @javax.annotation.Nullable - private String accountId; - - public static final String SERIALIZED_NAME_PROJECT_ID = "project_id"; - - @SerializedName(SERIALIZED_NAME_PROJECT_ID) - @javax.annotation.Nullable - private String projectId; - - public static final String SERIALIZED_NAME_DBT_ENV_ID = "dbt_env_id"; - - @SerializedName(SERIALIZED_NAME_DBT_ENV_ID) - @javax.annotation.Nullable - private String dbtEnvId; - - public static final String SERIALIZED_NAME_PROJECT_NAME = "project_name"; - - @SerializedName(SERIALIZED_NAME_PROJECT_NAME) - @javax.annotation.Nullable - private String projectName; - - public static final String SERIALIZED_NAME_FILE_CONTENT = "file_content"; - - @SerializedName(SERIALIZED_NAME_FILE_CONTENT) - @javax.annotation.Nullable - private File fileContent; - - public UpdateDbtConnectionRequest() {} - - public UpdateDbtConnectionRequest dbtConnectionIdentifier( - @javax.annotation.Nonnull String dbtConnectionIdentifier) { - this.dbtConnectionIdentifier = dbtConnectionIdentifier; - return this; - } - - /** - * Unique ID of the DBT Connection. - * - * @return dbtConnectionIdentifier - */ - @javax.annotation.Nonnull - public String getDbtConnectionIdentifier() { - return dbtConnectionIdentifier; - } - - public void setDbtConnectionIdentifier( - @javax.annotation.Nonnull String dbtConnectionIdentifier) { - this.dbtConnectionIdentifier = dbtConnectionIdentifier; - } - - public UpdateDbtConnectionRequest connectionName( - @javax.annotation.Nullable String connectionName) { - this.connectionName = connectionName; - return this; - } - - /** - * Name of the connection. - * - * @return connectionName - */ - @javax.annotation.Nullable - public String getConnectionName() { - return connectionName; - } - - public void setConnectionName(@javax.annotation.Nullable String connectionName) { - this.connectionName = connectionName; - } - - public UpdateDbtConnectionRequest databaseName(@javax.annotation.Nullable String databaseName) { - this.databaseName = databaseName; - return this; - } - - /** - * Name of the Database. - * - * @return databaseName - */ - @javax.annotation.Nullable - public String getDatabaseName() { - return databaseName; - } - - public void setDatabaseName(@javax.annotation.Nullable String databaseName) { - this.databaseName = databaseName; - } - - public UpdateDbtConnectionRequest importType( - @javax.annotation.Nullable ImportTypeEnum importType) { - this.importType = importType; - return this; - } - - /** - * Mention type of Import - * - * @return importType - */ - @javax.annotation.Nullable - public ImportTypeEnum getImportType() { - return importType; - } - - public void setImportType(@javax.annotation.Nullable ImportTypeEnum importType) { - this.importType = importType; - } - - public UpdateDbtConnectionRequest accessToken(@javax.annotation.Nullable String accessToken) { - this.accessToken = accessToken; - return this; - } - - /** - * Access token is mandatory when Import_Type is DBT_CLOUD. - * - * @return accessToken - */ - @javax.annotation.Nullable - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(@javax.annotation.Nullable String accessToken) { - this.accessToken = accessToken; - } - - public UpdateDbtConnectionRequest dbtUrl(@javax.annotation.Nullable String dbtUrl) { - this.dbtUrl = dbtUrl; - return this; - } - - /** - * DBT URL is mandatory when Import_Type is DBT_CLOUD. - * - * @return dbtUrl - */ - @javax.annotation.Nullable - public String getDbtUrl() { - return dbtUrl; - } - - public void setDbtUrl(@javax.annotation.Nullable String dbtUrl) { - this.dbtUrl = dbtUrl; - } - - public UpdateDbtConnectionRequest accountId(@javax.annotation.Nullable String accountId) { - this.accountId = accountId; - return this; - } - - /** - * Account ID is mandatory when Import_Type is DBT_CLOUD - * - * @return accountId - */ - @javax.annotation.Nullable - public String getAccountId() { - return accountId; - } - - public void setAccountId(@javax.annotation.Nullable String accountId) { - this.accountId = accountId; - } - - public UpdateDbtConnectionRequest projectId(@javax.annotation.Nullable String projectId) { - this.projectId = projectId; - return this; - } - - /** - * Project ID is mandatory when Import_Type is DBT_CLOUD - * - * @return projectId - */ - @javax.annotation.Nullable - public String getProjectId() { - return projectId; - } - - public void setProjectId(@javax.annotation.Nullable String projectId) { - this.projectId = projectId; - } - - public UpdateDbtConnectionRequest dbtEnvId(@javax.annotation.Nullable String dbtEnvId) { - this.dbtEnvId = dbtEnvId; - return this; - } - - /** - * DBT Environment ID\" - * - * @return dbtEnvId - */ - @javax.annotation.Nullable - public String getDbtEnvId() { - return dbtEnvId; - } - - public void setDbtEnvId(@javax.annotation.Nullable String dbtEnvId) { - this.dbtEnvId = dbtEnvId; - } - - public UpdateDbtConnectionRequest projectName(@javax.annotation.Nullable String projectName) { - this.projectName = projectName; - return this; - } - - /** - * Name of the project - * - * @return projectName - */ - @javax.annotation.Nullable - public String getProjectName() { - return projectName; - } - - public void setProjectName(@javax.annotation.Nullable String projectName) { - this.projectName = projectName; - } - - public UpdateDbtConnectionRequest fileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - return this; - } - - /** - * Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when - * Import Type is 'ZIP_FILE' - * - * @return fileContent - */ - @javax.annotation.Nullable - public File getFileContent() { - return fileContent; - } - - public void setFileContent(@javax.annotation.Nullable File fileContent) { - this.fileContent = fileContent; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UpdateDbtConnectionRequest updateDbtConnectionRequest = (UpdateDbtConnectionRequest) o; - return Objects.equals( - this.dbtConnectionIdentifier, - updateDbtConnectionRequest.dbtConnectionIdentifier) - && Objects.equals(this.connectionName, updateDbtConnectionRequest.connectionName) - && Objects.equals(this.databaseName, updateDbtConnectionRequest.databaseName) - && Objects.equals(this.importType, updateDbtConnectionRequest.importType) - && Objects.equals(this.accessToken, updateDbtConnectionRequest.accessToken) - && Objects.equals(this.dbtUrl, updateDbtConnectionRequest.dbtUrl) - && Objects.equals(this.accountId, updateDbtConnectionRequest.accountId) - && Objects.equals(this.projectId, updateDbtConnectionRequest.projectId) - && Objects.equals(this.dbtEnvId, updateDbtConnectionRequest.dbtEnvId) - && Objects.equals(this.projectName, updateDbtConnectionRequest.projectName) - && Objects.equals(this.fileContent, updateDbtConnectionRequest.fileContent); - } - - @Override - public int hashCode() { - return Objects.hash( - dbtConnectionIdentifier, - connectionName, - databaseName, - importType, - accessToken, - dbtUrl, - accountId, - projectId, - dbtEnvId, - projectName, - fileContent); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UpdateDbtConnectionRequest {\n"); - sb.append(" dbtConnectionIdentifier: ") - .append(toIndentedString(dbtConnectionIdentifier)) - .append("\n"); - sb.append(" connectionName: ").append(toIndentedString(connectionName)).append("\n"); - sb.append(" databaseName: ").append(toIndentedString(databaseName)).append("\n"); - sb.append(" importType: ").append(toIndentedString(importType)).append("\n"); - sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); - sb.append(" dbtUrl: ").append(toIndentedString(dbtUrl)).append("\n"); - sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); - sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); - sb.append(" dbtEnvId: ").append(toIndentedString(dbtEnvId)).append("\n"); - sb.append(" projectName: ").append(toIndentedString(projectName)).append("\n"); - sb.append(" fileContent: ").append(toIndentedString(fileContent)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first - * line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("dbt_connection_identifier"); - openapiFields.add("connection_name"); - openapiFields.add("database_name"); - openapiFields.add("import_type"); - openapiFields.add("access_token"); - openapiFields.add("dbt_url"); - openapiFields.add("account_id"); - openapiFields.add("project_id"); - openapiFields.add("dbt_env_id"); - openapiFields.add("project_name"); - openapiFields.add("file_content"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("dbt_connection_identifier"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to UpdateDbtConnectionRequest - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!UpdateDbtConnectionRequest.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in UpdateDbtConnectionRequest is not" - + " found in the empty JSON string", - UpdateDbtConnectionRequest.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!UpdateDbtConnectionRequest.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the" - + " `UpdateDbtConnectionRequest` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : UpdateDbtConnectionRequest.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("dbt_connection_identifier").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `dbt_connection_identifier` to be a primitive type" - + " in the JSON string but got `%s`", - jsonObj.get("dbt_connection_identifier").toString())); - } - if ((jsonObj.get("connection_name") != null && !jsonObj.get("connection_name").isJsonNull()) - && !jsonObj.get("connection_name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `connection_name` to be a primitive type in the" - + " JSON string but got `%s`", - jsonObj.get("connection_name").toString())); - } - if ((jsonObj.get("database_name") != null && !jsonObj.get("database_name").isJsonNull()) - && !jsonObj.get("database_name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `database_name` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("database_name").toString())); - } - if ((jsonObj.get("import_type") != null && !jsonObj.get("import_type").isJsonNull()) - && !jsonObj.get("import_type").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `import_type` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("import_type").toString())); - } - // validate the optional field `import_type` - if (jsonObj.get("import_type") != null && !jsonObj.get("import_type").isJsonNull()) { - ImportTypeEnum.validateJsonElement(jsonObj.get("import_type")); - } - if ((jsonObj.get("access_token") != null && !jsonObj.get("access_token").isJsonNull()) - && !jsonObj.get("access_token").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `access_token` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("access_token").toString())); - } - if ((jsonObj.get("dbt_url") != null && !jsonObj.get("dbt_url").isJsonNull()) - && !jsonObj.get("dbt_url").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `dbt_url` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("dbt_url").toString())); - } - if ((jsonObj.get("account_id") != null && !jsonObj.get("account_id").isJsonNull()) - && !jsonObj.get("account_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `account_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("account_id").toString())); - } - if ((jsonObj.get("project_id") != null && !jsonObj.get("project_id").isJsonNull()) - && !jsonObj.get("project_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `project_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("project_id").toString())); - } - if ((jsonObj.get("dbt_env_id") != null && !jsonObj.get("dbt_env_id").isJsonNull()) - && !jsonObj.get("dbt_env_id").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `dbt_env_id` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("dbt_env_id").toString())); - } - if ((jsonObj.get("project_name") != null && !jsonObj.get("project_name").isJsonNull()) - && !jsonObj.get("project_name").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `project_name` to be a primitive type in the JSON" - + " string but got `%s`", - jsonObj.get("project_name").toString())); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!UpdateDbtConnectionRequest.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'UpdateDbtConnectionRequest' and its - // subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(UpdateDbtConnectionRequest.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, UpdateDbtConnectionRequest value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public UpdateDbtConnectionRequest read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of UpdateDbtConnectionRequest given an JSON string - * - * @param jsonString JSON string - * @return An instance of UpdateDbtConnectionRequest - * @throws IOException if the JSON string is invalid with respect to UpdateDbtConnectionRequest - */ - public static UpdateDbtConnectionRequest fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, UpdateDbtConnectionRequest.class); - } - - /** - * Convert an instance of UpdateDbtConnectionRequest to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateRoleRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateRoleRequest.java index b7e2b3fa4..7b5625eda 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateRoleRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateRoleRequest.java @@ -106,6 +106,8 @@ public enum PrivilegesEnum { CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateUserGroupRequest.java b/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateUserGroupRequest.java index fff20c06e..eeefdfe8c 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateUserGroupRequest.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/UpdateUserGroupRequest.java @@ -111,6 +111,8 @@ public enum PrivilegesEnum { CAN_MODIFY_FOLDERS("CAN_MODIFY_FOLDERS"), + CAN_MANAGE_VARIABLES("CAN_MANAGE_VARIABLES"), + CAN_VIEW_FOLDERS("CAN_VIEW_FOLDERS"), PREVIEW_DOCUMENT_SEARCH("PREVIEW_DOCUMENT_SEARCH"), diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/Variable.java b/sdks/java/src/main/java/com/thoughtspot/client/model/Variable.java index 4b020c749..cdd407ec6 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/Variable.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/Variable.java @@ -53,7 +53,9 @@ public enum VariableTypeEnum { TABLE_MAPPING("TABLE_MAPPING"), - CONNECTION_PROPERTY_PER_PRINCIPAL("CONNECTION_PROPERTY_PER_PRINCIPAL"); + CONNECTION_PROPERTY_PER_PRINCIPAL("CONNECTION_PROPERTY_PER_PRINCIPAL"), + + FORMULA_VARIABLE("FORMULA_VARIABLE"); private String value; diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/VariableDetailInput.java b/sdks/java/src/main/java/com/thoughtspot/client/model/VariableDetailInput.java index 03c4438f4..cd3a3f7c6 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/VariableDetailInput.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/VariableDetailInput.java @@ -44,7 +44,9 @@ public enum TypeEnum { TABLE_MAPPING("TABLE_MAPPING"), - CONNECTION_PROPERTY_PER_PRINCIPAL("CONNECTION_PROPERTY_PER_PRINCIPAL"); + CONNECTION_PROPERTY_PER_PRINCIPAL("CONNECTION_PROPERTY_PER_PRINCIPAL"), + + FORMULA_VARIABLE("FORMULA_VARIABLE"); private String value; diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/VariableUpdateAssignmentInput.java b/sdks/java/src/main/java/com/thoughtspot/client/model/VariableUpdateAssignmentInput.java index b687002fc..958c9300e 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/VariableUpdateAssignmentInput.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/VariableUpdateAssignmentInput.java @@ -52,7 +52,7 @@ public enum OperationEnum { REPLACE("REPLACE"), - CLEAR("CLEAR"); + RESET("RESET"); private String value; diff --git a/sdks/java/src/main/java/com/thoughtspot/client/model/VariableValueInput.java b/sdks/java/src/main/java/com/thoughtspot/client/model/VariableValues.java similarity index 53% rename from sdks/java/src/main/java/com/thoughtspot/client/model/VariableValueInput.java rename to sdks/java/src/main/java/com/thoughtspot/client/model/VariableValues.java index 5c02e9a47..243ab65c4 100644 --- a/sdks/java/src/main/java/com/thoughtspot/client/model/VariableValueInput.java +++ b/sdks/java/src/main/java/com/thoughtspot/client/model/VariableValues.java @@ -5,7 +5,6 @@ package com.thoughtspot.client.model; import com.google.gson.Gson; -import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.TypeAdapter; @@ -24,74 +23,71 @@ import java.util.Objects; import java.util.Set; -/** Input for variable value update */ +/** Variable values. */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") -public class VariableValueInput implements Serializable { +public class VariableValues implements Serializable { private static final long serialVersionUID = 1L; - public static final String SERIALIZED_NAME_VARIABLE_IDENTIFIER = "variable_identifier"; + public static final String SERIALIZED_NAME_NAME = "name"; - @SerializedName(SERIALIZED_NAME_VARIABLE_IDENTIFIER) + @SerializedName(SERIALIZED_NAME_NAME) @javax.annotation.Nonnull - private String variableIdentifier; + private String name; - public static final String SERIALIZED_NAME_VARIABLE_VALUES = "variable_values"; + public static final String SERIALIZED_NAME_VALUES = "values"; - @SerializedName(SERIALIZED_NAME_VARIABLE_VALUES) + @SerializedName(SERIALIZED_NAME_VALUES) @javax.annotation.Nonnull - private List variableValues; + private List values; - public VariableValueInput() {} + public VariableValues() {} - public VariableValueInput variableIdentifier( - @javax.annotation.Nonnull String variableIdentifier) { - this.variableIdentifier = variableIdentifier; + public VariableValues name(@javax.annotation.Nonnull String name) { + this.name = name; return this; } /** - * ID or Name of the variable + * The name of the existing formula variable. * - * @return variableIdentifier + * @return name */ @javax.annotation.Nonnull - public String getVariableIdentifier() { - return variableIdentifier; + public String getName() { + return name; } - public void setVariableIdentifier(@javax.annotation.Nonnull String variableIdentifier) { - this.variableIdentifier = variableIdentifier; + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; } - public VariableValueInput variableValues( - @javax.annotation.Nonnull List variableValues) { - this.variableValues = variableValues; + public VariableValues values(@javax.annotation.Nonnull List values) { + this.values = values; return this; } - public VariableValueInput addVariableValuesItem(InputVariableValue variableValuesItem) { - if (this.variableValues == null) { - this.variableValues = new ArrayList<>(); + public VariableValues addValuesItem(Object valuesItem) { + if (this.values == null) { + this.values = new ArrayList<>(); } - this.variableValues.add(variableValuesItem); + this.values.add(valuesItem); return this; } /** - * Values of the variable + * The values to filter on. * - * @return variableValues + * @return values */ @javax.annotation.Nonnull - public List getVariableValues() { - return variableValues; + public List getValues() { + return values; } - public void setVariableValues( - @javax.annotation.Nonnull List variableValues) { - this.variableValues = variableValues; + public void setValues(@javax.annotation.Nonnull List values) { + this.values = values; } @Override @@ -102,24 +98,22 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - VariableValueInput variableValueInput = (VariableValueInput) o; - return Objects.equals(this.variableIdentifier, variableValueInput.variableIdentifier) - && Objects.equals(this.variableValues, variableValueInput.variableValues); + VariableValues variableValues = (VariableValues) o; + return Objects.equals(this.name, variableValues.name) + && Objects.equals(this.values, variableValues.values); } @Override public int hashCode() { - return Objects.hash(variableIdentifier, variableValues); + return Objects.hash(name, values); } @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class VariableValueInput {\n"); - sb.append(" variableIdentifier: ") - .append(toIndentedString(variableIdentifier)) - .append("\n"); - sb.append(" variableValues: ").append(toIndentedString(variableValues)).append("\n"); + sb.append("class VariableValues {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); sb.append("}"); return sb.toString(); } @@ -141,47 +135,47 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("variable_identifier"); - openapiFields.add("variable_values"); + openapiFields.add("name"); + openapiFields.add("values"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("variable_identifier"); - openapiRequiredFields.add("variable_values"); + openapiRequiredFields.add("name"); + openapiRequiredFields.add("values"); } /** * Validates the JSON Element and throws an exception if issues found * * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to VariableValueInput + * @throws IOException if the JSON Element is invalid with respect to VariableValues */ public static void validateJsonElement(JsonElement jsonElement) throws IOException { if (jsonElement == null) { - if (!VariableValueInput.openapiRequiredFields + if (!VariableValues.openapiRequiredFields .isEmpty()) { // has required fields but JSON element is null throw new IllegalArgumentException( String.format( - "The required field(s) %s in VariableValueInput is not found in" - + " the empty JSON string", - VariableValueInput.openapiRequiredFields.toString())); + "The required field(s) %s in VariableValues is not found in the" + + " empty JSON string", + VariableValues.openapiRequiredFields.toString())); } } Set> entries = jsonElement.getAsJsonObject().entrySet(); // check to see if the JSON string contains additional fields for (Map.Entry entry : entries) { - if (!VariableValueInput.openapiFields.contains(entry.getKey())) { + if (!VariableValues.openapiFields.contains(entry.getKey())) { throw new IllegalArgumentException( String.format( "The field `%s` in the JSON string is not defined in the" - + " `VariableValueInput` properties. JSON: %s", + + " `VariableValues` properties. JSON: %s", entry.getKey(), jsonElement.toString())); } } // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : VariableValueInput.openapiRequiredFields) { + for (String requiredField : VariableValues.openapiRequiredFields) { if (jsonElement.getAsJsonObject().get(requiredField) == null) { throw new IllegalArgumentException( String.format( @@ -190,52 +184,48 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - if (!jsonObj.get("variable_identifier").isJsonPrimitive()) { + if (!jsonObj.get("name").isJsonPrimitive()) { throw new IllegalArgumentException( String.format( - "Expected the field `variable_identifier` to be a primitive type in" - + " the JSON string but got `%s`", - jsonObj.get("variable_identifier").toString())); + "Expected the field `name` to be a primitive type in the JSON string" + + " but got `%s`", + jsonObj.get("name").toString())); } - // ensure the json data is an array - if (!jsonObj.get("variable_values").isJsonArray()) { + // ensure the required json array is present + if (jsonObj.get("values") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got" + + " `null`"); + } else if (!jsonObj.get("values").isJsonArray()) { throw new IllegalArgumentException( String.format( - "Expected the field `variable_values` to be an array in the JSON" - + " string but got `%s`", - jsonObj.get("variable_values").toString())); - } - - JsonArray jsonArrayvariableValues = jsonObj.getAsJsonArray("variable_values"); - // validate the required field `variable_values` (array) - for (int i = 0; i < jsonArrayvariableValues.size(); i++) { - InputVariableValue.validateJsonElement(jsonArrayvariableValues.get(i)); + "Expected the field `values` to be an array in the JSON string but got" + + " `%s`", + jsonObj.get("values").toString())); } - ; } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") @Override public TypeAdapter create(Gson gson, TypeToken type) { - if (!VariableValueInput.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'VariableValueInput' and its subtypes + if (!VariableValues.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VariableValues' and its subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(VariableValueInput.class)); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(VariableValues.class)); return (TypeAdapter) - new TypeAdapter() { + new TypeAdapter() { @Override - public void write(JsonWriter out, VariableValueInput value) - throws IOException { + public void write(JsonWriter out, VariableValues value) throws IOException { JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); elementAdapter.write(out, obj); } @Override - public VariableValueInput read(JsonReader in) throws IOException { + public VariableValues read(JsonReader in) throws IOException { JsonElement jsonElement = elementAdapter.read(in); validateJsonElement(jsonElement); return thisAdapter.fromJsonTree(jsonElement); @@ -245,18 +235,18 @@ public VariableValueInput read(JsonReader in) throws IOException { } /** - * Create an instance of VariableValueInput given an JSON string + * Create an instance of VariableValues given an JSON string * * @param jsonString JSON string - * @return An instance of VariableValueInput - * @throws IOException if the JSON string is invalid with respect to VariableValueInput + * @return An instance of VariableValues + * @throws IOException if the JSON string is invalid with respect to VariableValues */ - public static VariableValueInput fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, VariableValueInput.class); + public static VariableValues fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VariableValues.class); } /** - * Convert an instance of VariableValueInput to an JSON string + * Convert an instance of VariableValues to an JSON string * * @return JSON string */ diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/AiApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/AiApiTest.java index f65efa442..8bcfe9532 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/AiApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/AiApiTest.java @@ -11,8 +11,11 @@ import com.thoughtspot.client.model.CreateConversationRequest; import com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse; import com.thoughtspot.client.model.EurekaDecomposeQueryResponse; +import com.thoughtspot.client.model.EurekaGetNLInstructionsResponse; import com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse; +import com.thoughtspot.client.model.EurekaSetNLInstructionsResponse; import com.thoughtspot.client.model.GetDataSourceSuggestionsRequest; +import com.thoughtspot.client.model.GetNLInstructionsRequest; import com.thoughtspot.client.model.GetRelevantQuestionsRequest; import com.thoughtspot.client.model.QueryGetDecomposedQueryRequest; import com.thoughtspot.client.model.ResponseMessage; @@ -20,6 +23,7 @@ import com.thoughtspot.client.model.SendAgentMessageResponse; import com.thoughtspot.client.model.SendAgentMessageStreamingRequest; import com.thoughtspot.client.model.SendMessageRequest; +import com.thoughtspot.client.model.SetNLInstructionsRequest; import com.thoughtspot.client.model.SingleAnswerRequest; import java.util.List; import org.junit.jupiter.api.Disabled; @@ -89,6 +93,35 @@ public void getDataSourceSuggestionsTest() throws ApiException { // TODO: test validations } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) + * instructions for a specific data-model. These instructions guide the AI system in + * understanding data context and generating more accurate responses when processing natural + * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getNLInstructionsTest() throws ApiException { + GetNLInstructionsRequest getNLInstructionsRequest = null; + EurekaGetNLInstructionsResponse response = api.getNLInstructions(getNLInstructionsRequest); + // TODO: test validations + } + /** * 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 @@ -213,6 +246,36 @@ public void sendMessageTest() throws ApiException { // TODO: test validations } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions + * for a specific data-model to improve AI-generated answers and query processing. These + * instructions help guide the AI system to better understand the data context and provide more + * accurate responses. #### Usage guidelines To set NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model for which to set NL instructions - `nl_instructions_info`: An array of + * instruction objects, each containing: - `instructions`: Array of text instructions + * for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently + * only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + * The API returns a response object with: - `success`: Boolean indicating whether the + * operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply + * globally for that data-model across the system > ###### Note: > * To use this API, the + * user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must + * use corresponding org related bearerToken where the data-model exists. > * This endpoint + * is currently in Beta. Breaking changes may be introduced before the endpoint is made + * Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint + * requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > + * * Instructions help improve the accuracy and relevance of AI-generated responses for the + * specified data-model. + * + * @throws ApiException if the Api call fails + */ + @Test + public void setNLInstructionsTest() throws ApiException { + SetNLInstructionsRequest setNLInstructionsRequest = null; + EurekaSetNLInstructionsResponse response = api.setNLInstructions(setNLInstructionsRequest); + // TODO: test validations + } + /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated * response based on a specified data model. Requires at least view access to the metadata diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/ConnectionConfigurationsApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/ConnectionConfigurationsApiTest.java index a180d269d..c04e5b99a 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/ConnectionConfigurationsApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/ConnectionConfigurationsApiTest.java @@ -56,7 +56,10 @@ public void connectionConfigurationSearchTest() throws ApiException { * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @throws ApiException if the Api call fails */ @@ -94,8 +97,11 @@ public void deleteConnectionConfigurationTest() throws ApiException { * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomisationApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomisationApiTest.java deleted file mode 100644 index 4bb545976..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomisationApiTest.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.api; - -import com.thoughtspot.client.ApiException; -import com.thoughtspot.client.model.CreateEmailCustomisationRequest; -import com.thoughtspot.client.model.CreateEmailCustomisationResponse; -import java.util.List; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -/** API tests for EmailCustomisationApi */ -@Disabled -public class EmailCustomisationApiTest { - - private final EmailCustomisationApi api = new EmailCustomisationApi(); - - /** - * 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>\" } } ``` - * - * @throws ApiException if the Api call fails - */ - @Test - public void createEmailCustomisationTest() throws ApiException { - CreateEmailCustomisationRequest createEmailCustomisationRequest = null; - CreateEmailCustomisationResponse response = - api.createEmailCustomisation(createEmailCustomisationRequest); - // TODO: test validations - } - - /** - * 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. - * - * @throws ApiException if the Api call fails - */ - @Test - public void deleteEmailCustomisationTest() throws ApiException { - String templateIdentifier = null; - api.deleteEmailCustomisation(templateIdentifier); - // TODO: test validations - } - - /** - * 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. - * - * @throws ApiException if the Api call fails - */ - @Test - public void searchEmailCustomisationTest() throws ApiException { - List response = api.searchEmailCustomisation(); - // TODO: test validations - } - - /** - * 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. - * - * @throws ApiException if the Api call fails - */ - @Test - public void validateEmailCustomisationTest() throws ApiException { - api.validateEmailCustomisation(); - // TODO: test validations - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomizationApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomizationApiTest.java index cc95df589..d526de73e 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomizationApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/EmailCustomizationApiTest.java @@ -30,22 +30,26 @@ public class EmailCustomizationApiTest { * #### Usage guidelines To create a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @throws ApiException if the Api call fails */ @@ -125,22 +129,26 @@ public void searchEmailCustomizationTest() throws ApiException { * #### Usage guidelines To update a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @throws ApiException if the Api call fails */ diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/MetadataApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/MetadataApiTest.java index aaf93d4d1..6462867d4 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/MetadataApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/MetadataApiTest.java @@ -327,11 +327,12 @@ public void importMetadataTMLAsyncTest() throws ApiException { * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing * fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the * metadata object. The API endpoint allows parameterizing the following types of metadata - * objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field + * type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName + * * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @throws ApiException if the Api call fails */ @@ -385,11 +386,12 @@ public void searchMetadataTest() throws ApiException { * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows * removing parameterization from fields in metadata objects in ThoughtSpot. Requires * appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @throws ApiException if the Api call fails */ diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/ReportsApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/ReportsApiTest.java index 24d6712b1..a566da24a 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/ReportsApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/ReportsApiTest.java @@ -38,15 +38,16 @@ public void exportAnswerReportTest() throws ApiException { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file - * format. Requires at least view access to the Liveboard. #### Usage guidelines In the request - * body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific - * visualizations, add GUIDs or names of the visualizations. The default `file_format` - * is PDF. For PDF downloads, you can specify additional parameters to customize the page - * orientation and include or exclude the cover page, logo, footer text, and page numbers. - * Similar customization options are also available for PNG output. **NOTE**: The downloadable - * file returned in API response file is extensionless. Please rename the downloaded file by - * typing in the relevant extension. Optionally, you can define [runtime + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or + * XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In + * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report + * with specific visualizations, add GUIDs or names of the visualizations. The default + * `file_format` is CSV. For PDF exports, you can specify additional parameters to + * customize the page orientation and include or exclude the cover page, logo, footer text, and + * page numbers. Similar customization options are available for PNG exports. CSV and XLSX + * exports do not support customization options. **NOTE**: The downloadable file returned in API + * response file is extensionless. Please rename the downloaded file by typing in the relevant + * extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -58,7 +59,15 @@ public void exportAnswerReportTest() throws ApiException { * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @throws ApiException if the Api call fails */ diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/ThoughtSpotRestApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/ThoughtSpotRestApiTest.java index ea6e238bc..4cd8938d5 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/ThoughtSpotRestApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/ThoughtSpotRestApiTest.java @@ -54,7 +54,9 @@ import com.thoughtspot.client.model.DeployResponse; import com.thoughtspot.client.model.EurekaDataSourceSuggestionResponse; import com.thoughtspot.client.model.EurekaDecomposeQueryResponse; +import com.thoughtspot.client.model.EurekaGetNLInstructionsResponse; import com.thoughtspot.client.model.EurekaGetRelevantQuestionsResponse; +import com.thoughtspot.client.model.EurekaSetNLInstructionsResponse; import com.thoughtspot.client.model.ExportAnswerReportRequest; import com.thoughtspot.client.model.ExportLiveboardReportRequest; import com.thoughtspot.client.model.ExportMetadataTMLBatchedRequest; @@ -75,6 +77,7 @@ import com.thoughtspot.client.model.GetCustomAccessTokenRequest; import com.thoughtspot.client.model.GetDataSourceSuggestionsRequest; import com.thoughtspot.client.model.GetFullAccessTokenRequest; +import com.thoughtspot.client.model.GetNLInstructionsRequest; import com.thoughtspot.client.model.GetObjectAccessTokenRequest; import com.thoughtspot.client.model.GetRelevantQuestionsRequest; import com.thoughtspot.client.model.GetTokenResponse; @@ -131,6 +134,7 @@ import com.thoughtspot.client.model.SendAgentMessageResponse; import com.thoughtspot.client.model.SendAgentMessageStreamingRequest; import com.thoughtspot.client.model.SendMessageRequest; +import com.thoughtspot.client.model.SetNLInstructionsRequest; import com.thoughtspot.client.model.ShareMetadataRequest; import com.thoughtspot.client.model.SingleAnswerRequest; import com.thoughtspot.client.model.SqlQueryResponse; @@ -532,7 +536,10 @@ public void createConnectionTest() throws ApiException { * required field. * If the `policy_type` is `PROCESSES`, then * `policy_processes` is a required field. * If the `policy_type` is * `NO_POLICY`, then `policy_principals` and `policy_processes` - * are not required fields. + * are not required fields. #### Parameterized Connection Support For parameterized connections + * that use OAuth authentication, only the same_as_parent and policy_process_options attributes + * are allowed in the API request. These attributes are not applicable to connections that are + * not parameterized. * * @throws ApiException if the Api call fails */ @@ -602,22 +609,26 @@ public void createCustomActionTest() throws ApiException { * #### Usage guidelines To create a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @throws ApiException if the Api call fails */ @@ -763,11 +774,11 @@ public void createUserGroupTest() throws ApiException { * 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 + * this. * FORMULA_VARIABLE - For Formula variables, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user + * lacks required permissions * The variable name already exists * The variable type is invalid * * @throws ApiException if the Api call fails */ @@ -1307,15 +1318,16 @@ public void exportAnswerReportTest() throws ApiException { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file - * format. Requires at least view access to the Liveboard. #### Usage guidelines In the request - * body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific - * visualizations, add GUIDs or names of the visualizations. The default `file_format` - * is PDF. For PDF downloads, you can specify additional parameters to customize the page - * orientation and include or exclude the cover page, logo, footer text, and page numbers. - * Similar customization options are also available for PNG output. **NOTE**: The downloadable - * file returned in API response file is extensionless. Please rename the downloaded file by - * typing in the relevant extension. Optionally, you can define [runtime + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or + * XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In + * the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report + * with specific visualizations, add GUIDs or names of the visualizations. The default + * `file_format` is CSV. For PDF exports, you can specify additional parameters to + * customize the page orientation and include or exclude the cover page, logo, footer text, and + * page numbers. Similar customization options are available for PNG exports. CSV and XLSX + * exports do not support customization options. **NOTE**: The downloadable file returned in API + * response file is extensionless. Please rename the downloaded file by typing in the relevant + * extension. Optionally, you can define [runtime * overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) * to apply to the Answer data. To include unsaved changes in the report, pass the * `transient_pinboard_content` script generated from the @@ -1327,7 +1339,15 @@ public void exportAnswerReportTest() throws ApiException { * the PNG format in the resolution of your choice. To enable this on your instance, contact * ThoughtSpot support. When this feature is enabled, the options * `include_cover_page`,`include_filter_page` within the - * `png_options` will not be available for PNG exports. + * `png_options` will not be available for PNG exports. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All + * visualizations in the Liveboard can be exported as individual CSV files. If multiple + * visualizations are selected or if the entire Liveboard is exported, the output is returned as + * a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the + * ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected + * visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization + * placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per + * workbook. * * @throws ApiException if the Api call fails */ @@ -1848,6 +1868,35 @@ public void getFullAccessTokenTest() throws ApiException { // TODO: test validations } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) + * instructions for a specific data-model. These instructions guide the AI system in + * understanding data context and generating more accurate responses when processing natural + * language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model to retrieve NL instructions The API returns a response object with: - + * `nl_instructions_info`: An array of instruction objects, each containing: - + * `instructions`: Array of text instructions for natural language processing - + * `scope`: The scope of the instruction (`GLOBAL`). It can be extended to + * data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that + * apply globally across the system on the given data-model (currently only global instructions + * are supported) > ###### Note: > * To use this API, the user needs atleast view access + * on the data-model and they must use corresponding org related bearerToken where the + * data-model exists. > * This endpoint is currently in Beta. Breaking changes may be + * introduced before the endpoint is made Generally Available. > * Available from version + * 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot + * Support to enable Spotter on your cluster. > * Use this API to view currently configured + * instructions before modifying them with `setNLInstructions`. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getNLInstructionsTest() throws ApiException { + GetNLInstructionsRequest getNLInstructionsRequest = null; + EurekaGetNLInstructionsResponse response = api.getNLInstructions(getNLInstructionsRequest); + // TODO: test validations + } + /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific * metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. @@ -2109,11 +2158,12 @@ public void logoutTest() throws ApiException { * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing * fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the * metadata object. The API endpoint allows parameterizing the following types of metadata - * objects: * Logical Tables * Connections For a Logical Table the field type must be - * `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName - * For a Connection the field type is always `CONNECTION_PROPERTY`. We use the - * field_name in this case to specify the exact property of a connection which needs to be - * parameterized. + * objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field + * type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName + * * tableName For a Connection or Connection Config, the field type is always + * `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the + * Connection or Connection Config that needs to be parameterized. For Connection Config, the + * only supported field name is: * impersonate_user * * @throws ApiException if the Api call fails */ @@ -2686,6 +2736,36 @@ public void sendMessageTest() throws ApiException { // TODO: test validations } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions + * for a specific data-model to improve AI-generated answers and query processing. These + * instructions help guide the AI system to better understand the data context and provide more + * accurate responses. #### Usage guidelines To set NL instructions for a data-model, the + * request must include: - `data_source_identifier`: The unique ID or name of the + * data-model for which to set NL instructions - `nl_instructions_info`: An array of + * instruction objects, each containing: - `instructions`: Array of text instructions + * for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently + * only `GLOBAL` is supported. It can be extended to data-model-user scope in future. + * The API returns a response object with: - `success`: Boolean indicating whether the + * operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply + * globally for that data-model across the system > ###### Note: > * To use this API, the + * user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must + * use corresponding org related bearerToken where the data-model exists. > * This endpoint + * is currently in Beta. Breaking changes may be introduced before the endpoint is made + * Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint + * requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > + * * Instructions help improve the accuracy and relevance of AI-generated responses for the + * specified data-model. + * + * @throws ApiException if the Api call fails + */ + @Test + public void setNLInstructionsTest() throws ApiException { + SetNLInstructionsRequest setNLInstructionsRequest = null; + EurekaSetNLInstructionsResponse response = api.setNLInstructions(setNLInstructionsRequest); + // TODO: test validations + } + /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and * groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows @@ -2740,11 +2820,12 @@ public void unassignTagTest() throws ApiException { * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows * removing parameterization from fields in metadata objects in ThoughtSpot. Requires * appropriate permissions to modify the metadata object. The API endpoint allows - * unparameterizing the following types of metadata objects: * Logical Tables * Connections For - * a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * - * databaseName * schemaName * tableName For a Connection the field type is always - * `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact - * property of a connection which needs to be unparameterized. + * unparameterizing the following types of metadata objects: * Logical Tables * Connections * + * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field + * name can be one of: * databaseName * schemaName * tableName For a Connection or Connection + * Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name + * specifies the exact property of the Connection or Connection Config that needs to be + * unparameterized. For Connection Config, the only supported field name is: * impersonate_user * * @throws ApiException if the Api call fails */ @@ -2926,8 +3007,11 @@ public void updateConnectionTest() throws ApiException { * Connections**) privilege is required. #### Supported operations This API endpoint lets you * perform the following operations in a single API request: * Edit the name or description of * the configuration * Edit the configuration properties * Edit the `policy_type` * - * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a - * configuration where `disabled` is `true`, you must reset + * Edit the type of authentication * Enable or disable a configuration #### Parameterized + * Connection Support For parameterized oauth based connections, only the + * `same_as_parent` and `policy_process_options` attributes are allowed. + * These attributes are not applicable to connections that are not parameterized. **NOTE**: When + * updating a configuration where `disabled` is `true`, you must reset * `disabled` to `true` in your update request payload. If not explicitly * set again, the API will default `disabled` to `false`. * @@ -3115,22 +3199,26 @@ public void updateDbtConnectionTest() throws ApiException { * #### Usage guidelines To update a custom configuration pass these parameters in your API * request: - A JSON map of configuration attributes `template_properties`. The * following example shows a sample set of customization configuration: ``` { { - * \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": - * \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", - * \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", - * \"hideProductName\" : false, \"hideFooterPhone\" : false, - * \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, - * \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": - * false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, - * \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, - * \"textTransform\": \"\", \"replacementValueForLiveboard\": - * \"LB dashboard\", \"replacementValueForAnswer\": \"Answer - * dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", - * \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", - * \"footerPhone\":\"(800) 508-7008\", - * \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", - * \"companyWebsiteUrl\":\"\", - * \"companyPrivacyPolicyUrl\":\"\" } } ``` + * \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": + * \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", + * \"logo_url\": + * \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", + * \"font_family\": \"\", \"product_name\": + * \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 + * Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", + * \"replacement_value_for_liveboard\": \"Dashboard\", + * \"replacement_value_for_answer\": \"Chart\", + * \"replacement_value_for_spot_iq\": \"AI Insights\", + * \"hide_footer_phone\": false, \"hide_footer_address\": false, + * \"hide_product_name\": false, \"hide_manage_notification\": false, + * \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, + * \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, + * \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, + * \"hide_modify_alert\": false, \"company_website_url\": + * \"https://your-website.com/\", \"company_privacy_policy_url\" : + * \"https://link-to-privacy-policy.com/\", \"contact_support_url\": + * \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": + * false } } ``` * * @throws ApiException if the Api call fails */ diff --git a/sdks/java/src/test/java/com/thoughtspot/client/api/VariableApiTest.java b/sdks/java/src/test/java/com/thoughtspot/client/api/VariableApiTest.java index aed5e4ede..77fbf555a 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/api/VariableApiTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/api/VariableApiTest.java @@ -28,11 +28,11 @@ public class VariableApiTest { * 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 + * this. * FORMULA_VARIABLE - For Formula variables, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user + * lacks required permissions * The variable name already exists * The variable type is invalid * * @throws ApiException if the Api call fails */ diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/CreateEmailCustomisationRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/CreateEmailCustomisationRequestTest.java deleted file mode 100644 index c7d304dbe..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/CreateEmailCustomisationRequestTest.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for CreateEmailCustomisationRequest */ -public class CreateEmailCustomisationRequestTest { - private final CreateEmailCustomisationRequest model = new CreateEmailCustomisationRequest(); - - /** Model tests for CreateEmailCustomisationRequest */ - @Test - public void testCreateEmailCustomisationRequest() { - // TODO: test CreateEmailCustomisationRequest - } - - /** Test the property 'templateProperties' */ - @Test - public void templatePropertiesTest() { - // TODO: test templateProperties - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/CreateEmailCustomisationResponseTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/CreateEmailCustomisationResponseTest.java deleted file mode 100644 index b1067e78d..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/CreateEmailCustomisationResponseTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for CreateEmailCustomisationResponse */ -public class CreateEmailCustomisationResponseTest { - private final CreateEmailCustomisationResponse model = new CreateEmailCustomisationResponse(); - - /** Model tests for CreateEmailCustomisationResponse */ - @Test - public void testCreateEmailCustomisationResponse() { - // TODO: test CreateEmailCustomisationResponse - } - - /** Test the property 'tenantId' */ - @Test - public void tenantIdTest() { - // TODO: test tenantId - } - - /** Test the property 'org' */ - @Test - public void orgTest() { - // TODO: test org - } - - /** Test the property 'name' */ - @Test - public void nameTest() { - // TODO: test name - } - - /** Test the property 'templateProperties' */ - @Test - public void templatePropertiesTest() { - // TODO: test templateProperties - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/DbtConnectionRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/DbtConnectionRequestTest.java deleted file mode 100644 index d95d5ce0f..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/DbtConnectionRequestTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for DbtConnectionRequest */ -public class DbtConnectionRequestTest { - private final DbtConnectionRequest model = new DbtConnectionRequest(); - - /** Model tests for DbtConnectionRequest */ - @Test - public void testDbtConnectionRequest() { - // TODO: test DbtConnectionRequest - } - - /** Test the property 'connectionName' */ - @Test - public void connectionNameTest() { - // TODO: test connectionName - } - - /** Test the property 'databaseName' */ - @Test - public void databaseNameTest() { - // TODO: test databaseName - } - - /** Test the property 'importType' */ - @Test - public void importTypeTest() { - // TODO: test importType - } - - /** Test the property 'accessToken' */ - @Test - public void accessTokenTest() { - // TODO: test accessToken - } - - /** Test the property 'dbtUrl' */ - @Test - public void dbtUrlTest() { - // TODO: test dbtUrl - } - - /** Test the property 'accountId' */ - @Test - public void accountIdTest() { - // TODO: test accountId - } - - /** Test the property 'projectId' */ - @Test - public void projectIdTest() { - // TODO: test projectId - } - - /** Test the property 'dbtEnvId' */ - @Test - public void dbtEnvIdTest() { - // TODO: test dbtEnvId - } - - /** Test the property 'projectName' */ - @Test - public void projectNameTest() { - // TODO: test projectName - } - - /** Test the property 'fileContent' */ - @Test - public void fileContentTest() { - // TODO: test fileContent - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/DbtGenerateSyncTmlRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/DbtGenerateSyncTmlRequestTest.java deleted file mode 100644 index 160c0e625..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/DbtGenerateSyncTmlRequestTest.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for DbtGenerateSyncTmlRequest */ -public class DbtGenerateSyncTmlRequestTest { - private final DbtGenerateSyncTmlRequest model = new DbtGenerateSyncTmlRequest(); - - /** Model tests for DbtGenerateSyncTmlRequest */ - @Test - public void testDbtGenerateSyncTmlRequest() { - // TODO: test DbtGenerateSyncTmlRequest - } - - /** Test the property 'dbtConnectionIdentifier' */ - @Test - public void dbtConnectionIdentifierTest() { - // TODO: test dbtConnectionIdentifier - } - - /** Test the property 'fileContent' */ - @Test - public void fileContentTest() { - // TODO: test fileContent - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/DbtGenerateTmlRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/DbtGenerateTmlRequestTest.java deleted file mode 100644 index ba9e00dcf..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/DbtGenerateTmlRequestTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for DbtGenerateTmlRequest */ -public class DbtGenerateTmlRequestTest { - private final DbtGenerateTmlRequest model = new DbtGenerateTmlRequest(); - - /** Model tests for DbtGenerateTmlRequest */ - @Test - public void testDbtGenerateTmlRequest() { - // TODO: test DbtGenerateTmlRequest - } - - /** Test the property 'dbtConnectionIdentifier' */ - @Test - public void dbtConnectionIdentifierTest() { - // TODO: test dbtConnectionIdentifier - } - - /** Test the property 'modelTables' */ - @Test - public void modelTablesTest() { - // TODO: test modelTables - } - - /** Test the property 'importWorksheets' */ - @Test - public void importWorksheetsTest() { - // TODO: test importWorksheets - } - - /** Test the property 'worksheets' */ - @Test - public void worksheetsTest() { - // TODO: test worksheets - } - - /** Test the property 'fileContent' */ - @Test - public void fileContentTest() { - // TODO: test fileContent - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/EurekaGetNLInstructionsResponseTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/EurekaGetNLInstructionsResponseTest.java new file mode 100644 index 000000000..b8cf22374 --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/EurekaGetNLInstructionsResponseTest.java @@ -0,0 +1,24 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for EurekaGetNLInstructionsResponse */ +public class EurekaGetNLInstructionsResponseTest { + private final EurekaGetNLInstructionsResponse model = new EurekaGetNLInstructionsResponse(); + + /** Model tests for EurekaGetNLInstructionsResponse */ + @Test + public void testEurekaGetNLInstructionsResponse() { + // TODO: test EurekaGetNLInstructionsResponse + } + + /** Test the property 'nlInstructionsInfo' */ + @Test + public void nlInstructionsInfoTest() { + // TODO: test nlInstructionsInfo + } +} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/EurekaSetNLInstructionsResponseTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/EurekaSetNLInstructionsResponseTest.java new file mode 100644 index 000000000..3769e05ea --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/EurekaSetNLInstructionsResponseTest.java @@ -0,0 +1,24 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for EurekaSetNLInstructionsResponse */ +public class EurekaSetNLInstructionsResponseTest { + private final EurekaSetNLInstructionsResponse model = new EurekaSetNLInstructionsResponse(); + + /** Model tests for EurekaSetNLInstructionsResponse */ + @Test + public void testEurekaSetNLInstructionsResponse() { + // TODO: test EurekaSetNLInstructionsResponse + } + + /** Test the property 'success' */ + @Test + public void successTest() { + // TODO: test success + } +} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/GetCustomAccessTokenRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/GetCustomAccessTokenRequestTest.java index 3754a0258..59476339f 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/GetCustomAccessTokenRequestTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/GetCustomAccessTokenRequestTest.java @@ -64,6 +64,12 @@ public void parameterValuesTest() { // TODO: test parameterValues } + /** Test the property 'variableValues' */ + @Test + public void variableValuesTest() { + // TODO: test variableValues + } + /** Test the property 'objects' */ @Test public void objectsTest() { diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/GetNLInstructionsRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/GetNLInstructionsRequestTest.java new file mode 100644 index 000000000..33c5889cf --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/GetNLInstructionsRequestTest.java @@ -0,0 +1,24 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for GetNLInstructionsRequest */ +public class GetNLInstructionsRequestTest { + private final GetNLInstructionsRequest model = new GetNLInstructionsRequest(); + + /** Model tests for GetNLInstructionsRequest */ + @Test + public void testGetNLInstructionsRequest() { + // TODO: test GetNLInstructionsRequest + } + + /** Test the property 'dataSourceIdentifier' */ + @Test + public void dataSourceIdentifierTest() { + // TODO: test dataSourceIdentifier + } +} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/InputVariableValueTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/InputVariableValueTest.java deleted file mode 100644 index 1079c5418..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/InputVariableValueTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for InputVariableValue */ -public class InputVariableValueTest { - private final InputVariableValue model = new InputVariableValue(); - - /** Model tests for InputVariableValue */ - @Test - public void testInputVariableValue() { - // TODO: test InputVariableValue - } - - /** Test the property 'value' */ - @Test - public void valueTest() { - // TODO: test value - } - - /** Test the property 'orgIdentifier' */ - @Test - public void orgIdentifierTest() { - // TODO: test orgIdentifier - } - - /** Test the property 'principalType' */ - @Test - public void principalTypeTest() { - // TODO: test principalType - } - - /** Test the property 'principalIdentifier' */ - @Test - public void principalIdentifierTest() { - // TODO: test principalIdentifier - } - - /** Test the property 'priority' */ - @Test - public void priorityTest() { - // TODO: test priority - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/NLInstructionsInfoInputTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/NLInstructionsInfoInputTest.java new file mode 100644 index 000000000..554edf2ef --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/NLInstructionsInfoInputTest.java @@ -0,0 +1,30 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for NLInstructionsInfoInput */ +public class NLInstructionsInfoInputTest { + private final NLInstructionsInfoInput model = new NLInstructionsInfoInput(); + + /** Model tests for NLInstructionsInfoInput */ + @Test + public void testNLInstructionsInfoInput() { + // TODO: test NLInstructionsInfoInput + } + + /** Test the property 'instructions' */ + @Test + public void instructionsTest() { + // TODO: test instructions + } + + /** Test the property 'scope' */ + @Test + public void scopeTest() { + // TODO: test scope + } +} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/NLInstructionsInfoTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/NLInstructionsInfoTest.java new file mode 100644 index 000000000..da784233f --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/NLInstructionsInfoTest.java @@ -0,0 +1,30 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for NLInstructionsInfo */ +public class NLInstructionsInfoTest { + private final NLInstructionsInfo model = new NLInstructionsInfo(); + + /** Model tests for NLInstructionsInfo */ + @Test + public void testNLInstructionsInfo() { + // TODO: test NLInstructionsInfo + } + + /** Test the property 'instructions' */ + @Test + public void instructionsTest() { + // TODO: test instructions + } + + /** Test the property 'scope' */ + @Test + public void scopeTest() { + // TODO: test scope + } +} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/SearchVariablesRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/SearchVariablesRequestTest.java index bc7c11024..7ccc6d011 100644 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/SearchVariablesRequestTest.java +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/SearchVariablesRequestTest.java @@ -40,9 +40,9 @@ public void recordSizeTest() { // TODO: test recordSize } - /** Test the property 'outputFormat' */ + /** Test the property 'responseContent' */ @Test - public void outputFormatTest() { - // TODO: test outputFormat + public void responseContentTest() { + // TODO: test responseContent } } diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/SetNLInstructionsRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/SetNLInstructionsRequestTest.java new file mode 100644 index 000000000..e7d68b968 --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/SetNLInstructionsRequestTest.java @@ -0,0 +1,30 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for SetNLInstructionsRequest */ +public class SetNLInstructionsRequestTest { + private final SetNLInstructionsRequest model = new SetNLInstructionsRequest(); + + /** Model tests for SetNLInstructionsRequest */ + @Test + public void testSetNLInstructionsRequest() { + // TODO: test SetNLInstructionsRequest + } + + /** Test the property 'dataSourceIdentifier' */ + @Test + public void dataSourceIdentifierTest() { + // TODO: test dataSourceIdentifier + } + + /** Test the property 'nlInstructionsInfo' */ + @Test + public void nlInstructionsInfoTest() { + // TODO: test nlInstructionsInfo + } +} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/UpdateDbtConnectionRequestTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/UpdateDbtConnectionRequestTest.java deleted file mode 100644 index 87cf9003c..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/UpdateDbtConnectionRequestTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for UpdateDbtConnectionRequest */ -public class UpdateDbtConnectionRequestTest { - private final UpdateDbtConnectionRequest model = new UpdateDbtConnectionRequest(); - - /** Model tests for UpdateDbtConnectionRequest */ - @Test - public void testUpdateDbtConnectionRequest() { - // TODO: test UpdateDbtConnectionRequest - } - - /** Test the property 'dbtConnectionIdentifier' */ - @Test - public void dbtConnectionIdentifierTest() { - // TODO: test dbtConnectionIdentifier - } - - /** Test the property 'connectionName' */ - @Test - public void connectionNameTest() { - // TODO: test connectionName - } - - /** Test the property 'databaseName' */ - @Test - public void databaseNameTest() { - // TODO: test databaseName - } - - /** Test the property 'importType' */ - @Test - public void importTypeTest() { - // TODO: test importType - } - - /** Test the property 'accessToken' */ - @Test - public void accessTokenTest() { - // TODO: test accessToken - } - - /** Test the property 'dbtUrl' */ - @Test - public void dbtUrlTest() { - // TODO: test dbtUrl - } - - /** Test the property 'accountId' */ - @Test - public void accountIdTest() { - // TODO: test accountId - } - - /** Test the property 'projectId' */ - @Test - public void projectIdTest() { - // TODO: test projectId - } - - /** Test the property 'dbtEnvId' */ - @Test - public void dbtEnvIdTest() { - // TODO: test dbtEnvId - } - - /** Test the property 'projectName' */ - @Test - public void projectNameTest() { - // TODO: test projectName - } - - /** Test the property 'fileContent' */ - @Test - public void fileContentTest() { - // TODO: test fileContent - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/VariableValueInputTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/VariableValueInputTest.java deleted file mode 100644 index bf566b422..000000000 --- a/sdks/java/src/test/java/com/thoughtspot/client/model/VariableValueInputTest.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * NOTE: This class is auto generated. Do not edit the class manually. - */ - -package com.thoughtspot.client.model; - -import org.junit.jupiter.api.Test; - -/** Model tests for VariableValueInput */ -public class VariableValueInputTest { - private final VariableValueInput model = new VariableValueInput(); - - /** Model tests for VariableValueInput */ - @Test - public void testVariableValueInput() { - // TODO: test VariableValueInput - } - - /** Test the property 'variableIdentifier' */ - @Test - public void variableIdentifierTest() { - // TODO: test variableIdentifier - } - - /** Test the property 'variableValues' */ - @Test - public void variableValuesTest() { - // TODO: test variableValues - } -} diff --git a/sdks/java/src/test/java/com/thoughtspot/client/model/VariableValuesTest.java b/sdks/java/src/test/java/com/thoughtspot/client/model/VariableValuesTest.java new file mode 100644 index 000000000..145945621 --- /dev/null +++ b/sdks/java/src/test/java/com/thoughtspot/client/model/VariableValuesTest.java @@ -0,0 +1,30 @@ +/* + * NOTE: This class is auto generated. Do not edit the class manually. + */ + +package com.thoughtspot.client.model; + +import org.junit.jupiter.api.Test; + +/** Model tests for VariableValues */ +public class VariableValuesTest { + private final VariableValues model = new VariableValues(); + + /** Model tests for VariableValues */ + @Test + public void testVariableValues() { + // TODO: test VariableValues + } + + /** Test the property 'name' */ + @Test + public void nameTest() { + // TODO: test name + } + + /** Test the property 'values' */ + @Test + public void valuesTest() { + // TODO: test values + } +} diff --git a/sdks/typescript/AIApi.md b/sdks/typescript/AIApi.md index 224f8f64f..f13a581a4 100644 --- a/sdks/typescript/AIApi.md +++ b/sdks/typescript/AIApi.md @@ -4,12 +4,81 @@ All URIs are relative to *CLUSTER_URL* Method | HTTP request | Description ------------- | ------------- | ------------- +[**createAgentConversation**](AIApi.md#createAgentConversation) | **POST** /api/rest/2.0/ai/agent/conversation/create | [**createConversation**](AIApi.md#createConversation) | **POST** /api/rest/2.0/ai/conversation/create | +[**getDataSourceSuggestions**](AIApi.md#getDataSourceSuggestions) | **POST** /api/rest/2.0/ai/data-source-suggestions | +[**getNLInstructions**](AIApi.md#getNLInstructions) | **POST** /api/rest/2.0/ai/instructions/get | +[**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 | +[**setNLInstructions**](AIApi.md#setNLInstructions) | **POST** /api/rest/2.0/ai/instructions/set | [**singleAnswer**](AIApi.md#singleAnswer) | **POST** /api/rest/2.0/ai/answer/create | +# **createAgentConversation** +> AgentConversation createAgentConversation(createAgentConversationRequest) + +Version: 10.13.0.cl or later + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, CreateAgentConversationRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.createAgentConversation( + // CreateAgentConversationRequest + { + metadata_context: null, + conversation_settings: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **createAgentConversationRequest** | **CreateAgentConversationRequest**| | + + +### Return type + +**AgentConversation** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **createConversation** > Conversation createConversation(createConversationRequest) @@ -62,6 +131,193 @@ Name | Type | Description | Notes - **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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **getDataSourceSuggestions** +> EurekaDataSourceSuggestionResponse getDataSourceSuggestions(getDataSourceSuggestionsRequest) + + 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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, GetDataSourceSuggestionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.getDataSourceSuggestions( + // GetDataSourceSuggestionsRequest + { + query: "query_example", + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **getDataSourceSuggestionsRequest** | **GetDataSourceSuggestionsRequest**| | + + +### Return type + +**EurekaDataSourceSuggestionResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **getNLInstructions** +> EurekaGetNLInstructionsResponse getNLInstructions(getNLInstructionsRequest) + + Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, GetNLInstructionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.getNLInstructions( + // GetNLInstructionsRequest + { + data_source_identifier: "data_source_identifier_example", + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **getNLInstructionsRequest** | **GetNLInstructionsRequest**| | + + +### Return type + +**EurekaGetNLInstructionsResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **getRelevantQuestions** +> EurekaGetRelevantQuestionsResponse getRelevantQuestions(getRelevantQuestionsRequest) + + 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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, GetRelevantQuestionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.getRelevantQuestions( + // GetRelevantQuestionsRequest + { + metadata_context: null, + limit_relevant_questions: 1, + bypass_cache: true, + query: "query_example", + ai_context: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **getRelevantQuestionsRequest** | **GetRelevantQuestionsRequest**| | + + +### Return type + +**EurekaGetRelevantQuestionsResponse** + +### Authorization + +[bearerAuth](README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| @@ -137,6 +393,136 @@ Name | Type | Description | Notes - **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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **sendAgentMessage** +> any sendAgentMessage(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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, SendAgentMessageRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.sendAgentMessage( + // string | Unique identifier for the conversation (used to track context) + "conversation_identifier_example" , + // SendAgentMessageRequest + { + messages: [ + "messages_example", + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **sendAgentMessageRequest** | **SendAgentMessageRequest**| | + **conversationIdentifier** | [**string**] | Unique identifier for the conversation (used to track context) | defaults to undefined + + +### Return type + +**any** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **sendAgentMessageStreaming** +> SendAgentMessageResponse sendAgentMessageStreaming(sendAgentMessageStreamingRequest) + + Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, SendAgentMessageStreamingRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.sendAgentMessageStreaming( + // SendAgentMessageStreamingRequest + { + conversation_identifier: "conversation_identifier_example", + messages: [ + "messages_example", + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **sendAgentMessageStreamingRequest** | **SendAgentMessageStreamingRequest**| | + + +### Return type + +**SendAgentMessageResponse** + +### Authorization + +[bearerAuth](README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| @@ -202,6 +588,75 @@ Name | Type | Description | Notes - **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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **setNLInstructions** +> EurekaSetNLInstructionsResponse setNLInstructions(setNLInstructionsRequest) + + Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, AIApi, SetNLInstructionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new AIApi(configuration); + +apiInstance.setNLInstructions( + // SetNLInstructionsRequest + { + data_source_identifier: "data_source_identifier_example", + nl_instructions_info: [ + { + instructions: [ + "instructions_example", + ], + scope: "GLOBAL", + }, + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **setNLInstructionsRequest** | **SetNLInstructionsRequest**| | + + +### Return type + +**EurekaSetNLInstructionsResponse** + +### Authorization + +[bearerAuth](README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + + ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| diff --git a/sdks/typescript/AuthenticationApi.md b/sdks/typescript/AuthenticationApi.md index 9d8ab69fa..fb2923f86 100644 --- a/sdks/typescript/AuthenticationApi.md +++ b/sdks/typescript/AuthenticationApi.md @@ -126,7 +126,7 @@ This endpoint does not need any parameter. # **getCustomAccessToken** > AccessToken getCustomAccessToken(getCustomAccessTokenRequest) - 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. ### Example @@ -166,6 +166,14 @@ apiInstance.getCustomAccessToken( ], }, ], + variable_values: [ + { + name: "name_example", + values: [ + {}, + ], + }, + ], objects: [ { type: "LOGICAL_TABLE", diff --git a/sdks/typescript/ConnectionConfigurationsApi.md b/sdks/typescript/ConnectionConfigurationsApi.md index dd4e902cd..722e7fa51 100644 --- a/sdks/typescript/ConnectionConfigurationsApi.md +++ b/sdks/typescript/ConnectionConfigurationsApi.md @@ -77,7 +77,7 @@ Name | Type | Description | Notes # **createConnectionConfiguration** > ConnectionConfigurationResponse createConnectionConfiguration(createConnectionConfigurationRequest) - Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. ### Example @@ -213,7 +213,7 @@ Name | Type | Description | Notes # **updateConnectionConfiguration** > void updateConnectionConfiguration(updateConnectionConfigurationRequest) - Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. ### Example diff --git a/sdks/typescript/ConnectionsApi.md b/sdks/typescript/ConnectionsApi.md index 2708e1373..2f37bf2ec 100644 --- a/sdks/typescript/ConnectionsApi.md +++ b/sdks/typescript/ConnectionsApi.md @@ -480,7 +480,7 @@ Name | Type | Description | Notes # **updateConnectionV2** > void updateConnectionV2(updateConnectionV2Request) - 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\":[ ] } ``` ### Example diff --git a/sdks/typescript/DBTApi.md b/sdks/typescript/DBTApi.md index 044d1b860..7cc75d9a9 100644 --- a/sdks/typescript/DBTApi.md +++ b/sdks/typescript/DBTApi.md @@ -182,11 +182,11 @@ const apiInstance = new DBTApi(configuration); apiInstance.dbtGenerateTml( // string | Unique ID of the DBT connection. "dbtConnectionIdentifier_example" , + // string | List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' + "modelTables_example" , // string | Mention the worksheet tmls to import "ALL" , - // string | List of Models and their respective Tables (optional) - "modelTables_example" , - // string | List of worksheets is mandatory when import_Worksheets is type SELECTED (optional) + // string | List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] (optional) "worksheets_example" , // HttpFile | 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) { data: Buffer.from(fs.readFileSync('/path/to/file', 'utf-8')), name: '/path/to/file' } @@ -203,9 +203,9 @@ apiInstance.dbtGenerateTml( Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **dbtConnectionIdentifier** | [**string**] | Unique ID of the DBT connection. | defaults to undefined + **modelTables** | [**string**] | List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' | defaults to undefined **importWorksheets** | [**string**]**Array<'ALL' | 'NONE' | 'SELECTED'>** | Mention the worksheet tmls to import | defaults to undefined - **modelTables** | [**string**] | List of Models and their respective Tables | (optional) defaults to undefined - **worksheets** | [**string**] | List of worksheets is mandatory when import_Worksheets is type SELECTED | (optional) defaults to undefined + **worksheets** | [**string**] | List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] | (optional) defaults to undefined **fileContent** | [**HttpFile**] | 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) defaults to undefined diff --git a/sdks/typescript/EmailCustomisationApi.md b/sdks/typescript/EmailCustomisationApi.md deleted file mode 100644 index d7f6a9a76..000000000 --- a/sdks/typescript/EmailCustomisationApi.md +++ /dev/null @@ -1,238 +0,0 @@ -# ThoughtSpotRestApiSdk.EmailCustomisationApi - -All URIs are relative to *CLUSTER_URL* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**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\": \"\", \"homeUrl\": \"\", \"productName\": \"\", \"footerAddress\": \"
\", \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": , \"hideTsVocabularyDefinitions\": e, \"hideProductName\": , \"hideFooterPhone\": , \"hideFooterAddress\": , \"hidePrivacyPolicy\": , \"hideManageNotification\": , \"fontfamily\": \"\" } } ``` - -### Example - - -```typescript -import { createBearerAuthenticationConfig, EmailCustomisationApi, CreateEmailCustomisationRequest } from '@thoughtspot/rest-api-sdk'; - -const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { - username: "YOUR_USERNAME", - password: "YOUR_PASSWORD", -}); -const apiInstance = new EmailCustomisationApi(configuration); - -apiInstance.createEmailCustomisation( - // CreateEmailCustomisationRequest - { - template_properties: {}, - } -).then((data:any) => { - console.log('API called successfully. Returned data: ' + data); -}).catch((error:any) => console.error(error)); - - -``` - - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **createEmailCustomisationRequest** | **CreateEmailCustomisationRequest**| | - - -### Return type - -**CreateEmailCustomisationResponse** - -### 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 | - | - -[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) - -# **deleteEmailCustomisation** -> void deleteEmailCustomisation() - - 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. - -### Example - - -```typescript -import { createBearerAuthenticationConfig, EmailCustomisationApi, DeleteEmailCustomisationRequest } from '@thoughtspot/rest-api-sdk'; - -const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { - username: "YOUR_USERNAME", - password: "YOUR_PASSWORD", -}); -const apiInstance = new EmailCustomisationApi(configuration); - -apiInstance.deleteEmailCustomisation( - // string | Unique ID or name of the email customization. - "template_identifier_example" -).then((data:any) => { - console.log('API called successfully. Returned data: ' + data); -}).catch((error:any) => console.error(error)); - - -``` - - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **templateIdentifier** | [**string**] | Unique ID or name of the email customization. | defaults to undefined - - -### Return type - -**void** - -### 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 | - | - -[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) - -# **searchEmailCustomisation** -> Array 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. - -### Example - - -```typescript -import { createBearerAuthenticationConfig, EmailCustomisationApi, SearchEmailCustomisationRequest } from '@thoughtspot/rest-api-sdk'; - -const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { - username: "YOUR_USERNAME", - password: "YOUR_PASSWORD", -}); -const apiInstance = new EmailCustomisationApi(configuration); - -apiInstance.searchEmailCustomisation().then((data:any) => { - console.log('API called successfully. Returned data: ' + JSON.stringify(data)); -}).catch((error:any) => console.error(error)); - - -``` - - -### Parameters -This endpoint does not need any parameter. - - -### Return type - -**Array** - -### 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 | - | - -[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) - -# **validateEmailCustomisation** -> void 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. - -### Example - - -```typescript -import { createBearerAuthenticationConfig, EmailCustomisationApi, ValidateEmailCustomisationRequest } from '@thoughtspot/rest-api-sdk'; - -const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { - username: "YOUR_USERNAME", - password: "YOUR_PASSWORD", -}); -const apiInstance = new EmailCustomisationApi(configuration); - -apiInstance.validateEmailCustomisation().then((data:any) => { - console.log('API called successfully. Returned data: ' + JSON.stringify(data)); -}).catch((error:any) => console.error(error)); - - -``` - - -### Parameters -This endpoint does not need any parameter. - - -### Return type - -**void** - -### 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 | - | - -[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) - diff --git a/sdks/typescript/EmailCustomizationApi.md b/sdks/typescript/EmailCustomizationApi.md index 981bd02ee..3865d0f53 100644 --- a/sdks/typescript/EmailCustomizationApi.md +++ b/sdks/typescript/EmailCustomizationApi.md @@ -15,7 +15,7 @@ Method | HTTP request | Description # **createEmailCustomization** > CreateEmailCustomizationResponse createEmailCustomization(createEmailCustomizationRequest) - Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Example @@ -263,7 +263,7 @@ Name | Type | Description | Notes # **updateEmailCustomization** > void updateEmailCustomization(updateEmailCustomizationRequest) - Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Example diff --git a/sdks/typescript/MetadataApi.md b/sdks/typescript/MetadataApi.md index 9441b71c2..84ca00c21 100644 --- a/sdks/typescript/MetadataApi.md +++ b/sdks/typescript/MetadataApi.md @@ -93,7 +93,7 @@ Name | Type | Description | Notes # **copyObject** > ResponseCopyObject copyObject(copyObjectRequest) - 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. ### Example @@ -707,7 +707,7 @@ Name | Type | Description | Notes # **parameterizeMetadata** > void parameterizeMetadata(parameterizeMetadataRequest) - Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user ### Example @@ -888,7 +888,7 @@ Name | Type | Description | Notes # **unparameterizeMetadata** > void unparameterizeMetadata(unparameterizeMetadataRequest) - Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user ### Example diff --git a/sdks/typescript/README.md b/sdks/typescript/README.md index ae73790a9..e538560db 100644 --- a/sdks/typescript/README.md +++ b/sdks/typescript/README.md @@ -1,4 +1,4 @@ -## @thoughtspot/rest-api-sdk@2.17.1 +## @thoughtspot/rest-api-sdk@2.20.0 TypeScript/JavaScript client for ThoughtSpot's v2 [Rest APIs](https://developers.thoughtspot.com/docs/rest-api-v2). diff --git a/sdks/typescript/ReportsApi.md b/sdks/typescript/ReportsApi.md index 900bb7ed2..43066724e 100644 --- a/sdks/typescript/ReportsApi.md +++ b/sdks/typescript/ReportsApi.md @@ -80,7 +80,7 @@ Name | Type | Description | Notes # **exportLiveboardReport** > HttpFile exportLiveboardReport(exportLiveboardReportRequest) - Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. ### Example diff --git a/sdks/typescript/SystemApi.md b/sdks/typescript/SystemApi.md index e97799cb9..5684691e4 100644 --- a/sdks/typescript/SystemApi.md +++ b/sdks/typescript/SystemApi.md @@ -4,12 +4,100 @@ All URIs are relative to *CLUSTER_URL* Method | HTTP request | Description ------------- | ------------- | ------------- +[**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** +> void 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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, SystemApi, ConfigureCommunicationChannelPreferencesRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new SystemApi(configuration); + +apiInstance.configureCommunicationChannelPreferences( + // ConfigureCommunicationChannelPreferencesRequest + { + cluster_preferences: [ + { + event_type: "LIVEBOARD_SCHEDULE", + channels: [ + "EMAIL", + ], + }, + ], + org_preferences: [ + { + org_identifier: "org_identifier_example", + operation: "REPLACE", + preferences: [ + { + event_type: "LIVEBOARD_SCHEDULE", + channels: [ + "EMAIL", + ], + }, + ], + reset_events: [ + "LIVEBOARD_SCHEDULE", + ], + }, + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **configureCommunicationChannelPreferencesRequest** | **ConfigureCommunicationChannelPreferencesRequest**| | + + +### Return type + +**void** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **getSystemConfig** > SystemConfig getSystemConfig() @@ -172,6 +260,78 @@ This endpoint does not need any parameter. [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, SystemApi, SearchCommunicationChannelPreferencesRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new SystemApi(configuration); + +apiInstance.searchCommunicationChannelPreferences( + // SearchCommunicationChannelPreferencesRequest + { + cluster_preferences: [ + "LIVEBOARD_SCHEDULE", + ], + org_preferences: [ + { + org_identifier: "org_identifier_example", + event_types: [ + "LIVEBOARD_SCHEDULE", + ], + }, + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **searchCommunicationChannelPreferencesRequest** | **SearchCommunicationChannelPreferencesRequest**| | + + +### Return type + +**CommunicationChannelPreferencesResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **updateSystemConfig** > void updateSystemConfig(updateSystemConfigRequest) diff --git a/sdks/typescript/ThoughtSpotRestApi.md b/sdks/typescript/ThoughtSpotRestApi.md index 66dbfc306..9361198d9 100644 --- a/sdks/typescript/ThoughtSpotRestApi.md +++ b/sdks/typescript/ThoughtSpotRestApi.md @@ -9,9 +9,11 @@ Method | HTTP request | Description [**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 | +[**createAgentConversation**](ThoughtSpotRestApi.md#createAgentConversation) | **POST** /api/rest/2.0/ai/agent/conversation/create | [**createCalendar**](ThoughtSpotRestApi.md#createCalendar) | **POST** /api/rest/2.0/calendars/create | [**createConfig**](ThoughtSpotRestApi.md#createConfig) | **POST** /api/rest/2.0/vcs/git/config/create | [**createConnection**](ThoughtSpotRestApi.md#createConnection) | **POST** /api/rest/2.0/connection/create | @@ -26,6 +28,7 @@ Method | HTTP request | Description [**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 | @@ -48,6 +51,7 @@ Method | HTTP request | Description [**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 | @@ -69,8 +73,11 @@ Method | HTTP request | Description [**getCurrentUserInfo**](ThoughtSpotRestApi.md#getCurrentUserInfo) | **GET** /api/rest/2.0/auth/session/user | [**getCurrentUserToken**](ThoughtSpotRestApi.md#getCurrentUserToken) | **GET** /api/rest/2.0/auth/session/token | [**getCustomAccessToken**](ThoughtSpotRestApi.md#getCustomAccessToken) | **POST** /api/rest/2.0/auth/token/custom | +[**getDataSourceSuggestions**](ThoughtSpotRestApi.md#getDataSourceSuggestions) | **POST** /api/rest/2.0/ai/data-source-suggestions | [**getFullAccessToken**](ThoughtSpotRestApi.md#getFullAccessToken) | **POST** /api/rest/2.0/auth/token/full | +[**getNLInstructions**](ThoughtSpotRestApi.md#getNLInstructions) | **POST** /api/rest/2.0/ai/instructions/get | [**getObjectAccessToken**](ThoughtSpotRestApi.md#getObjectAccessToken) | **POST** /api/rest/2.0/auth/token/object | +[**getRelevantQuestions**](ThoughtSpotRestApi.md#getRelevantQuestions) | **POST** /api/rest/2.0/ai/relevant-questions/ | [**getSystemConfig**](ThoughtSpotRestApi.md#getSystemConfig) | **GET** /api/rest/2.0/system/config | [**getSystemInformation**](ThoughtSpotRestApi.md#getSystemInformation) | **GET** /api/rest/2.0/system | [**getSystemOverrideInfo**](ThoughtSpotRestApi.md#getSystemOverrideInfo) | **GET** /api/rest/2.0/system/config-overrides | @@ -88,6 +95,7 @@ Method | HTTP request | Description [**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 | @@ -101,7 +109,11 @@ Method | HTTP request | Description [**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 | +[**setNLInstructions**](ThoughtSpotRestApi.md#setNLInstructions) | **POST** /api/rest/2.0/ai/instructions/set | [**shareMetadata**](ThoughtSpotRestApi.md#shareMetadata) | **POST** /api/rest/2.0/security/metadata/share | [**singleAnswer**](ThoughtSpotRestApi.md#singleAnswer) | **POST** /api/rest/2.0/ai/answer/create | [**unassignTag**](ThoughtSpotRestApi.md#unassignTag) | **POST** /api/rest/2.0/tags/unassign | @@ -126,7 +138,8 @@ Method | HTTP request | Description [**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 | @@ -470,6 +483,92 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **configureCommunicationChannelPreferences** +> void 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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, ConfigureCommunicationChannelPreferencesRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.configureCommunicationChannelPreferences( + // ConfigureCommunicationChannelPreferencesRequest + { + cluster_preferences: [ + { + event_type: "LIVEBOARD_SCHEDULE", + channels: [ + "EMAIL", + ], + }, + ], + org_preferences: [ + { + org_identifier: "org_identifier_example", + operation: "REPLACE", + preferences: [ + { + event_type: "LIVEBOARD_SCHEDULE", + channels: [ + "EMAIL", + ], + }, + ], + reset_events: [ + "LIVEBOARD_SCHEDULE", + ], + }, + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **configureCommunicationChannelPreferencesRequest** | **ConfigureCommunicationChannelPreferencesRequest**| | + + +### Return type + +**void** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **connectionConfigurationSearch** > Array connectionConfigurationSearch(connectionConfigurationSearchRequest) @@ -606,7 +705,7 @@ Name | Type | Description | Notes # **copyObject** > ResponseCopyObject copyObject(copyObjectRequest) - 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. ### Example @@ -669,6 +768,68 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **createAgentConversation** +> AgentConversation createAgentConversation(createAgentConversationRequest) + +Version: 10.13.0.cl or later + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, CreateAgentConversationRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.createAgentConversation( + // CreateAgentConversationRequest + { + metadata_context: null, + conversation_settings: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **createAgentConversationRequest** | **CreateAgentConversationRequest**| | + + +### Return type + +**AgentConversation** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **createCalendar** > CalendarResponse createCalendar(createCalendarRequest) @@ -880,7 +1041,7 @@ Name | Type | Description | Notes # **createConnectionConfiguration** > ConnectionConfigurationResponse createConnectionConfiguration(createConnectionConfigurationRequest) - Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. ### Example @@ -1092,7 +1253,7 @@ Name | Type | Description | Notes # **createEmailCustomization** > CreateEmailCustomizationResponse createEmailCustomization(createEmailCustomizationRequest) - Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Example @@ -1589,7 +1750,7 @@ Name | Type | Description | Notes # **createVariable** > Variable createVariable(createVariableRequest) - 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid ### Example @@ -1608,16 +1769,8 @@ apiInstance.createVariable( { type: "CONNECTION_PROPERTY", name: "name_example", - sensitive: false, - values: [ - { - value: "value_example", - org_identifier: "org_identifier_example", - principal_type: "USER", - principal_identifier: "principal_identifier_example", - priority: 1, - }, - ], + is_sensitive: false, + data_type: "VARCHAR", } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -1659,6 +1812,76 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, CreateWebhookConfigurationRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.createWebhookConfiguration( + // CreateWebhookConfigurationRequest + { + name: "name_example", + description: "description_example", + url: "url_example", + url_params: {}, + events: [ + "LIVEBOARD_SCHEDULE", + ], + authentication: null, + signature_verification: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **createWebhookConfigurationRequest** | **CreateWebhookConfigurationRequest**| | + + +### Return type + +**WebhookResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **dbtConnection** > any dbtConnection() @@ -1829,11 +2052,11 @@ const apiInstance = new ThoughtSpotRestApi(configuration); apiInstance.dbtGenerateTml( // string | Unique ID of the DBT connection. "dbtConnectionIdentifier_example" , + // string | List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' + "modelTables_example" , // string | Mention the worksheet tmls to import "ALL" , - // string | List of Models and their respective Tables (optional) - "modelTables_example" , - // string | List of worksheets is mandatory when import_Worksheets is type SELECTED (optional) + // string | List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] (optional) "worksheets_example" , // HttpFile | 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) { data: Buffer.from(fs.readFileSync('/path/to/file', 'utf-8')), name: '/path/to/file' } @@ -1850,9 +2073,9 @@ apiInstance.dbtGenerateTml( Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **dbtConnectionIdentifier** | [**string**] | Unique ID of the DBT connection. | defaults to undefined + **modelTables** | [**string**] | List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' | defaults to undefined **importWorksheets** | [**string**]**Array<'ALL' | 'NONE' | 'SELECTED'>** | Mention the worksheet tmls to import | defaults to undefined - **modelTables** | [**string**] | List of Models and their respective Tables | (optional) defaults to undefined - **worksheets** | [**string**] | List of worksheets is mandatory when import_Worksheets is type SELECTED | (optional) defaults to undefined + **worksheets** | [**string**] | List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] | (optional) defaults to undefined **fileContent** | [**HttpFile**] | 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) defaults to undefined @@ -2979,7 +3202,7 @@ Name | Type | Description | Notes # **deleteVariable** > void deleteVariable() - 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 ### Example @@ -3036,6 +3259,70 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, DeleteWebhookConfigurationsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.deleteWebhookConfigurations( + // DeleteWebhookConfigurationsRequest + { + webhook_identifiers: [ + "webhook_identifiers_example", + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **deleteWebhookConfigurationsRequest** | **DeleteWebhookConfigurationsRequest**| | + + +### Return type + +**WebhookDeleteResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **deployCommit** > Array deployCommit(deployCommitRequest) @@ -3233,7 +3520,7 @@ Name | Type | Description | Notes # **exportLiveboardReport** > HttpFile exportLiveboardReport(exportLiveboardReportRequest) - Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. ### Example @@ -4378,7 +4665,7 @@ This endpoint does not need any parameter. # **getCustomAccessToken** > AccessToken getCustomAccessToken(getCustomAccessTokenRequest) - 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. ### Example @@ -4418,6 +4705,14 @@ apiInstance.getCustomAccessToken( ], }, ], + variable_values: [ + { + name: "name_example", + values: [ + {}, + ], + }, + ], objects: [ { type: "LOGICAL_TABLE", @@ -4473,16 +4768,16 @@ No authorization required [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) -# **getFullAccessToken** -> Token getFullAccessToken(getFullAccessTokenRequest) +# **getDataSourceSuggestions** +> EurekaDataSourceSuggestionResponse getDataSourceSuggestions(getDataSourceSuggestionsRequest) - Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + 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. ### Example ```typescript -import { createBearerAuthenticationConfig, ThoughtSpotRestApi, GetFullAccessTokenRequest } from '@thoughtspot/rest-api-sdk'; +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, GetDataSourceSuggestionsRequest } from '@thoughtspot/rest-api-sdk'; const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { username: "YOUR_USERNAME", @@ -4490,17 +4785,78 @@ const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { }); const apiInstance = new ThoughtSpotRestApi(configuration); -apiInstance.getFullAccessToken( - // GetFullAccessTokenRequest +apiInstance.getDataSourceSuggestions( + // GetDataSourceSuggestionsRequest { - username: "username_example", - password: "", - secret_key: "", - validity_time_in_sec: 300, - org_id: 1, - email: "email_example", - display_name: "display_name_example", - auto_create: false, + query: "query_example", + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **getDataSourceSuggestionsRequest** | **GetDataSourceSuggestionsRequest**| | + + +### Return type + +**EurekaDataSourceSuggestionResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **getFullAccessToken** +> Token getFullAccessToken(getFullAccessTokenRequest) + + Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, GetFullAccessTokenRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.getFullAccessToken( + // GetFullAccessTokenRequest + { + username: "username_example", + password: "", + secret_key: "", + validity_time_in_sec: 300, + org_id: 1, + email: "email_example", + display_name: "display_name_example", + auto_create: false, group_identifiers: [ "group_identifiers_example", ], @@ -4546,6 +4902,67 @@ No authorization required [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **getNLInstructions** +> EurekaGetNLInstructionsResponse getNLInstructions(getNLInstructionsRequest) + + Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, GetNLInstructionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.getNLInstructions( + // GetNLInstructionsRequest + { + data_source_identifier: "data_source_identifier_example", + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **getNLInstructionsRequest** | **GetNLInstructionsRequest**| | + + +### Return type + +**EurekaGetNLInstructionsResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **getObjectAccessToken** > Token getObjectAccessToken(getObjectAccessTokenRequest) @@ -4620,6 +5037,71 @@ No authorization required [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **getRelevantQuestions** +> EurekaGetRelevantQuestionsResponse getRelevantQuestions(getRelevantQuestionsRequest) + + 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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, GetRelevantQuestionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.getRelevantQuestions( + // GetRelevantQuestionsRequest + { + metadata_context: null, + limit_relevant_questions: 1, + bypass_cache: true, + query: "query_example", + ai_context: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **getRelevantQuestionsRequest** | **GetRelevantQuestionsRequest**| | + + +### Return type + +**EurekaGetRelevantQuestionsResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **getSystemConfig** > SystemConfig getSystemConfig() @@ -5217,7 +5699,7 @@ This endpoint does not need any parameter. # **parameterizeMetadata** > void parameterizeMetadata(parameterizeMetadataRequest) - Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user ### Example @@ -5756,6 +6238,78 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) +# **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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SearchCommunicationChannelPreferencesRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.searchCommunicationChannelPreferences( + // SearchCommunicationChannelPreferencesRequest + { + cluster_preferences: [ + "LIVEBOARD_SCHEDULE", + ], + org_preferences: [ + { + org_identifier: "org_identifier_example", + event_types: [ + "LIVEBOARD_SCHEDULE", + ], + }, + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **searchCommunicationChannelPreferencesRequest** | **SearchCommunicationChannelPreferencesRequest**| | + + +### Return type + +**CommunicationChannelPreferencesResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + # **searchConfig** > Array searchConfig(searchConfigRequest) @@ -6701,7 +7255,7 @@ Name | Type | Description | Notes # **searchVariables** > Array searchVariables(searchVariablesRequest) - 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 ### Example @@ -6725,9 +7279,17 @@ apiInstance.searchVariables( name_pattern: "name_pattern_example", }, ], + value_scope: [ + { + org_identifier: "org_identifier_example", + principal_type: "USER", + principal_identifier: "principal_identifier_example", + model_identifier: "model_identifier_example", + }, + ], record_offset: 0, record_size: 10, - output_format: "METADATA_ONLY", + response_content: "METADATA", } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -6769,16 +7331,16 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) -# **sendMessage** -> Array sendMessage(sendMessageRequest) +# **searchWebhookConfigurations** +> WebhookSearchResponse searchWebhookConfigurations(searchWebhookConfigurationsRequest) - Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + Version: 10.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. ### Example ```typescript -import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SendMessageRequest } from '@thoughtspot/rest-api-sdk'; +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SearchWebhookConfigurationsRequest } from '@thoughtspot/rest-api-sdk'; const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { username: "YOUR_USERNAME", @@ -6786,13 +7348,15 @@ const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { }); const apiInstance = new ThoughtSpotRestApi(configuration); -apiInstance.sendMessage( - // string | Unique identifier of the conversation. - "conversation_identifier_example" , - // SendMessageRequest +apiInstance.searchWebhookConfigurations( + // SearchWebhookConfigurationsRequest { - metadata_identifier: "metadata_identifier_example", - message: "message_example", + org_identifier: "org_identifier_example", + webhook_identifier: "webhook_identifier_example", + event_type: "LIVEBOARD_SCHEDULE", + record_offset: 0, + record_size: 50, + sort_options: null, } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -6806,13 +7370,12 @@ apiInstance.sendMessage( Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **sendMessageRequest** | **SendMessageRequest**| | - **conversationIdentifier** | [**string**] | Unique identifier of the conversation. | defaults to undefined + **searchWebhookConfigurationsRequest** | **SearchWebhookConfigurationsRequest**| | ### Return type -**Array** +**WebhookSearchResponse** ### Authorization @@ -6827,10 +7390,275 @@ Name | Type | Description | Notes ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | Common successful response | - | -**201** | Common error response | - | -**400** | Operation failed | - | -**500** | Operation failed | - | +**200** | Webhook configurations retrieved successfully | - | +**400** | Invalid request. | - | +**401** | Unauthorized access. | - | +**403** | Forbidden access. | - | +**500** | Unexpected error | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **sendAgentMessage** +> any sendAgentMessage(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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SendAgentMessageRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.sendAgentMessage( + // string | Unique identifier for the conversation (used to track context) + "conversation_identifier_example" , + // SendAgentMessageRequest + { + messages: [ + "messages_example", + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **sendAgentMessageRequest** | **SendAgentMessageRequest**| | + **conversationIdentifier** | [**string**] | Unique identifier for the conversation (used to track context) | defaults to undefined + + +### Return type + +**any** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **sendAgentMessageStreaming** +> SendAgentMessageResponse sendAgentMessageStreaming(sendAgentMessageStreamingRequest) + + Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SendAgentMessageStreamingRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.sendAgentMessageStreaming( + // SendAgentMessageStreamingRequest + { + conversation_identifier: "conversation_identifier_example", + messages: [ + "messages_example", + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **sendAgentMessageStreamingRequest** | **SendAgentMessageStreamingRequest**| | + + +### Return type + +**SendAgentMessageResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **sendMessage** +> Array sendMessage(sendMessageRequest) + + Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SendMessageRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.sendMessage( + // string | Unique identifier of the conversation. + "conversation_identifier_example" , + // SendMessageRequest + { + metadata_identifier: "metadata_identifier_example", + message: "message_example", + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **sendMessageRequest** | **SendMessageRequest**| | + **conversationIdentifier** | [**string**] | Unique identifier of the conversation. | defaults to undefined + + +### Return type + +**Array** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **setNLInstructions** +> EurekaSetNLInstructionsResponse setNLInstructions(setNLInstructionsRequest) + + Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, SetNLInstructionsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.setNLInstructions( + // SetNLInstructionsRequest + { + data_source_identifier: "data_source_identifier_example", + nl_instructions_info: [ + { + instructions: [ + "instructions_example", + ], + scope: "GLOBAL", + }, + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **setNLInstructionsRequest** | **SetNLInstructionsRequest**| | + + +### Return type + +**EurekaSetNLInstructionsResponse** + +### 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 | - | [[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) @@ -7057,7 +7885,7 @@ Name | Type | Description | Notes # **unparameterizeMetadata** > void unparameterizeMetadata(unparameterizeMetadataRequest) - Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user ### Example @@ -7482,7 +8310,7 @@ Name | Type | Description | Notes # **updateConnectionConfiguration** > void updateConnectionConfiguration(updateConnectionConfigurationRequest) - Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. ### Example @@ -7559,7 +8387,7 @@ Name | Type | Description | Notes # **updateConnectionV2** > void updateConnectionV2(updateConnectionV2Request) - 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\":[ ] } ``` ### Example @@ -7798,7 +8626,7 @@ Name | Type | Description | Notes # **updateEmailCustomization** > void updateEmailCustomization(updateEmailCustomizationRequest) - Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` ### Example @@ -8526,7 +9354,7 @@ Name | Type | Description | Notes # **updateVariable** > void updateVariable(updateVariableRequest) - 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 ### Example @@ -8546,16 +9374,6 @@ apiInstance.updateVariable( // UpdateVariableRequest { name: "name_example", - operation: "REPLACE", - values: [ - { - value: "value_example", - org_identifier: "org_identifier_example", - principal_type: "USER", - principal_identifier: "principal_identifier_example", - priority: 1, - }, - ], } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -8590,7 +9408,7 @@ Name | Type | Description | Notes ### 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. | - | @@ -8601,7 +9419,7 @@ Name | Type | Description | Notes # **updateVariableValues** > void updateVariableValues(updateVariableValuesRequest) - 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 ### Example @@ -8618,21 +9436,24 @@ const apiInstance = new ThoughtSpotRestApi(configuration); apiInstance.updateVariableValues( // UpdateVariableValuesRequest { - variable_updates: [ + variable_assignment: [ { variable_identifier: "variable_identifier_example", variable_values: [ - { - value: "value_example", - org_identifier: "org_identifier_example", - principal_type: "USER", - principal_identifier: "principal_identifier_example", - priority: 1, - }, + "variable_values_example", ], + operation: "ADD", + }, + ], + variable_value_scope: [ + { + org_identifier: "org_identifier_example", + principal_type: "USER", + principal_identifier: "principal_identifier_example", + model_identifier: "model_identifier_example", + priority: 1, }, ], - operation: "ADD", } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -8666,7 +9487,80 @@ Name | Type | Description | Notes ### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **updateWebhookConfiguration** +> void updateWebhookConfiguration(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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, ThoughtSpotRestApi, UpdateWebhookConfigurationRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new ThoughtSpotRestApi(configuration); + +apiInstance.updateWebhookConfiguration( + // string | Unique ID or name of the webhook configuration. + "webhook_identifier_example" , + // UpdateWebhookConfigurationRequest + { + name: "name_example", + description: "description_example", + url: "url_example", + url_params: {}, + events: [ + "LIVEBOARD_SCHEDULE", + ], + authentication: null, + signature_verification: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **updateWebhookConfigurationRequest** | **UpdateWebhookConfigurationRequest**| | + **webhookIdentifier** | [**string**] | Unique ID or name of the webhook configuration. | defaults to undefined + + +### Return type + +**void** + +### 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/typescript/VariableApi.md b/sdks/typescript/VariableApi.md index 017f60a6d..1a2084543 100644 --- a/sdks/typescript/VariableApi.md +++ b/sdks/typescript/VariableApi.md @@ -8,13 +8,13 @@ Method | HTTP request | Description [**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 | # **createVariable** > Variable createVariable(createVariableRequest) - 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid ### Example @@ -33,16 +33,8 @@ apiInstance.createVariable( { type: "CONNECTION_PROPERTY", name: "name_example", - sensitive: false, - values: [ - { - value: "value_example", - org_identifier: "org_identifier_example", - principal_type: "USER", - principal_identifier: "principal_identifier_example", - priority: 1, - }, - ], + is_sensitive: false, + data_type: "VARCHAR", } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -87,7 +79,7 @@ Name | Type | Description | Notes # **deleteVariable** > void deleteVariable() - 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 ### Example @@ -147,7 +139,7 @@ Name | Type | Description | Notes # **searchVariables** > Array searchVariables(searchVariablesRequest) - 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 ### Example @@ -171,9 +163,17 @@ apiInstance.searchVariables( name_pattern: "name_pattern_example", }, ], + value_scope: [ + { + org_identifier: "org_identifier_example", + principal_type: "USER", + principal_identifier: "principal_identifier_example", + model_identifier: "model_identifier_example", + }, + ], record_offset: 0, record_size: 10, - output_format: "METADATA_ONLY", + response_content: "METADATA", } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -218,7 +218,7 @@ Name | Type | Description | Notes # **updateVariable** > void updateVariable(updateVariableRequest) - 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 ### Example @@ -238,16 +238,6 @@ apiInstance.updateVariable( // UpdateVariableRequest { name: "name_example", - operation: "REPLACE", - values: [ - { - value: "value_example", - org_identifier: "org_identifier_example", - principal_type: "USER", - principal_identifier: "principal_identifier_example", - priority: 1, - }, - ], } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -282,7 +272,7 @@ Name | Type | Description | Notes ### 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. | - | @@ -293,7 +283,7 @@ Name | Type | Description | Notes # **updateVariableValues** > void updateVariableValues(updateVariableValuesRequest) - 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 ### Example @@ -310,21 +300,24 @@ const apiInstance = new VariableApi(configuration); apiInstance.updateVariableValues( // UpdateVariableValuesRequest { - variable_updates: [ + variable_assignment: [ { variable_identifier: "variable_identifier_example", variable_values: [ - { - value: "value_example", - org_identifier: "org_identifier_example", - principal_type: "USER", - principal_identifier: "principal_identifier_example", - priority: 1, - }, + "variable_values_example", ], + operation: "ADD", + }, + ], + variable_value_scope: [ + { + org_identifier: "org_identifier_example", + principal_type: "USER", + principal_identifier: "principal_identifier_example", + model_identifier: "model_identifier_example", + priority: 1, }, ], - operation: "ADD", } ).then((data:any) => { console.log('API called successfully. Returned data: ' + data); @@ -358,7 +351,7 @@ Name | Type | Description | Notes ### 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/typescript/WebhooksApi.md b/sdks/typescript/WebhooksApi.md new file mode 100644 index 000000000..96cbfad20 --- /dev/null +++ b/sdks/typescript/WebhooksApi.md @@ -0,0 +1,286 @@ +# ThoughtSpotRestApiSdk.WebhooksApi + +All URIs are relative to *CLUSTER_URL* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, WebhooksApi, CreateWebhookConfigurationRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new WebhooksApi(configuration); + +apiInstance.createWebhookConfiguration( + // CreateWebhookConfigurationRequest + { + name: "name_example", + description: "description_example", + url: "url_example", + url_params: {}, + events: [ + "LIVEBOARD_SCHEDULE", + ], + authentication: null, + signature_verification: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **createWebhookConfigurationRequest** | **CreateWebhookConfigurationRequest**| | + + +### Return type + +**WebhookResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, WebhooksApi, DeleteWebhookConfigurationsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new WebhooksApi(configuration); + +apiInstance.deleteWebhookConfigurations( + // DeleteWebhookConfigurationsRequest + { + webhook_identifiers: [ + "webhook_identifiers_example", + ], + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **deleteWebhookConfigurationsRequest** | **DeleteWebhookConfigurationsRequest**| | + + +### Return type + +**WebhookDeleteResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, WebhooksApi, SearchWebhookConfigurationsRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new WebhooksApi(configuration); + +apiInstance.searchWebhookConfigurations( + // SearchWebhookConfigurationsRequest + { + org_identifier: "org_identifier_example", + webhook_identifier: "webhook_identifier_example", + event_type: "LIVEBOARD_SCHEDULE", + record_offset: 0, + record_size: 50, + sort_options: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **searchWebhookConfigurationsRequest** | **SearchWebhookConfigurationsRequest**| | + + +### Return type + +**WebhookSearchResponse** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + +# **updateWebhookConfiguration** +> void updateWebhookConfiguration(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. + +### Example + + +```typescript +import { createBearerAuthenticationConfig, WebhooksApi, UpdateWebhookConfigurationRequest } from '@thoughtspot/rest-api-sdk'; + +const configuration = createBearerAuthenticationConfig("CLUSTER_SERVER_URL", { + username: "YOUR_USERNAME", + password: "YOUR_PASSWORD", +}); +const apiInstance = new WebhooksApi(configuration); + +apiInstance.updateWebhookConfiguration( + // string | Unique ID or name of the webhook configuration. + "webhook_identifier_example" , + // UpdateWebhookConfigurationRequest + { + name: "name_example", + description: "description_example", + url: "url_example", + url_params: {}, + events: [ + "LIVEBOARD_SCHEDULE", + ], + authentication: null, + signature_verification: null, + } +).then((data:any) => { + console.log('API called successfully. Returned data: ' + data); +}).catch((error:any) => console.error(error)); + + +``` + + +### Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **updateWebhookConfigurationRequest** | **UpdateWebhookConfigurationRequest**| | + **webhookIdentifier** | [**string**] | Unique ID or name of the webhook configuration. | defaults to undefined + + +### Return type + +**void** + +### 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 | - | + +[[Back to top]](#) [[Back to API list]](README.md#documentation-for-api-endpoints) [[Back to Model list]](README.md#documentation-for-models) [[Back to README]](README.md) + diff --git a/sdks/typescript/apis/AIApi.ts b/sdks/typescript/apis/AIApi.ts index 8b077dbdd..b8fda4cdd 100644 --- a/sdks/typescript/apis/AIApi.ts +++ b/sdks/typescript/apis/AIApi.ts @@ -8,13 +8,26 @@ import {canConsumeForm, isCodeInRange} from '../util'; import {SecurityAuthentication} from '../auth/auth'; +import { AgentConversation } from '../models/AgentConversation'; import { Conversation } from '../models/Conversation'; +import { CreateAgentConversationRequest } from '../models/CreateAgentConversationRequest'; import { CreateConversationRequest } from '../models/CreateConversationRequest'; import { ErrorResponse } from '../models/ErrorResponse'; +import { EurekaDataSourceSuggestionResponse } from '../models/EurekaDataSourceSuggestionResponse'; import { EurekaDecomposeQueryResponse } from '../models/EurekaDecomposeQueryResponse'; +import { EurekaGetNLInstructionsResponse } from '../models/EurekaGetNLInstructionsResponse'; +import { EurekaGetRelevantQuestionsResponse } from '../models/EurekaGetRelevantQuestionsResponse'; +import { EurekaSetNLInstructionsResponse } from '../models/EurekaSetNLInstructionsResponse'; +import { GetDataSourceSuggestionsRequest } from '../models/GetDataSourceSuggestionsRequest'; +import { GetNLInstructionsRequest } from '../models/GetNLInstructionsRequest'; +import { GetRelevantQuestionsRequest } from '../models/GetRelevantQuestionsRequest'; import { QueryGetDecomposedQueryRequest } from '../models/QueryGetDecomposedQueryRequest'; import { ResponseMessage } from '../models/ResponseMessage'; +import { SendAgentMessageRequest } from '../models/SendAgentMessageRequest'; +import { SendAgentMessageResponse } from '../models/SendAgentMessageResponse'; +import { SendAgentMessageStreamingRequest } from '../models/SendAgentMessageStreamingRequest'; import { SendMessageRequest } from '../models/SendMessageRequest'; +import { SetNLInstructionsRequest } from '../models/SetNLInstructionsRequest'; import { SingleAnswerRequest } from '../models/SingleAnswerRequest'; /** @@ -22,6 +35,57 @@ import { SingleAnswerRequest } from '../models/SingleAnswerRequest'; */ export class AIApiRequestFactory extends BaseAPIRequestFactory { + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + public async createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'createAgentConversationRequest' is not null or undefined + if (createAgentConversationRequest === null || createAgentConversationRequest === undefined) { + throw new RequiredError("AIApi", "createAgentConversation", "createAgentConversationRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/agent/conversation/create'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createAgentConversationRequest, "CreateAgentConversationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * 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 @@ -41,7 +105,8 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -72,6 +137,159 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * 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 + */ + public async getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'getDataSourceSuggestionsRequest' is not null or undefined + if (getDataSourceSuggestionsRequest === null || getDataSourceSuggestionsRequest === undefined) { + throw new RequiredError("AIApi", "getDataSourceSuggestions", "getDataSourceSuggestionsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/data-source-suggestions'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getDataSourceSuggestionsRequest, "GetDataSourceSuggestionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + public async getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'getNLInstructionsRequest' is not null or undefined + if (getNLInstructionsRequest === null || getNLInstructionsRequest === undefined) { + throw new RequiredError("AIApi", "getNLInstructions", "getNLInstructionsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/instructions/get'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getNLInstructionsRequest, "GetNLInstructionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * 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 + */ + public async getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'getRelevantQuestionsRequest' is not null or undefined + if (getRelevantQuestionsRequest === null || getRelevantQuestionsRequest === undefined) { + throw new RequiredError("AIApi", "getRelevantQuestions", "getRelevantQuestionsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/relevant-questions/'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getRelevantQuestionsRequest, "GetRelevantQuestionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -91,7 +309,8 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -123,33 +342,34 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * 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) + * @param sendAgentMessageRequest */ - public async sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise { + public async sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; // verify required parameter 'conversationIdentifier' is not null or undefined if (conversationIdentifier === null || conversationIdentifier === undefined) { - throw new RequiredError("AIApi", "sendMessage", "conversationIdentifier"); + throw new RequiredError("AIApi", "sendAgentMessage", "conversationIdentifier"); } - // verify required parameter 'sendMessageRequest' is not null or undefined - if (sendMessageRequest === null || sendMessageRequest === undefined) { - throw new RequiredError("AIApi", "sendMessage", "sendMessageRequest"); + // verify required parameter 'sendAgentMessageRequest' is not null or undefined + if (sendAgentMessageRequest === null || sendAgentMessageRequest === undefined) { + throw new RequiredError("AIApi", "sendAgentMessage", "sendAgentMessageRequest"); } // Path Params - const localVarPath = '/api/rest/2.0/ai/conversation/{conversation_identifier}/converse' + const localVarPath = '/api/rest/2.0/ai/agent/{conversation_identifier}/converse' .replace('{' + 'conversation_identifier' + '}', encodeURIComponent(String(conversationIdentifier))); // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -160,7 +380,7 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + ObjectSerializer.serialize(sendAgentMessageRequest, "SendAgentMessageRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -181,25 +401,26 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest */ - public async singleAnswer(singleAnswerRequest: SingleAnswerRequest, _options?: Configuration): Promise { + public async sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; - // verify required parameter 'singleAnswerRequest' is not null or undefined - if (singleAnswerRequest === null || singleAnswerRequest === undefined) { - throw new RequiredError("AIApi", "singleAnswer", "singleAnswerRequest"); + // verify required parameter 'sendAgentMessageStreamingRequest' is not null or undefined + if (sendAgentMessageStreamingRequest === null || sendAgentMessageStreamingRequest === undefined) { + throw new RequiredError("AIApi", "sendAgentMessageStreaming", "sendAgentMessageStreamingRequest"); } // Path Params - const localVarPath = '/api/rest/2.0/ai/answer/create'; + const localVarPath = '/api/rest/2.0/ai/agent/converse/sse'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -210,7 +431,7 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + ObjectSerializer.serialize(sendAgentMessageStreamingRequest, "SendAgentMessageStreamingRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -230,75 +451,436 @@ export class AIApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } -} - -export class AIApiResponseProcessor { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConversation - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest */ - public async createConversation(response: ResponseContext): Promise { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body: Conversation = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "Conversation", "" - ) as Conversation; - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body: Conversation = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "Conversation", "" - ) as Conversation; - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body: ErrorResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "ErrorResponse", "" - ) as ErrorResponse; - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body: ErrorResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "ErrorResponse", "" - ) as ErrorResponse; - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } + public async sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; - // Work around for missing responses in specification, e.g. for petstore.yaml - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: Conversation = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "Conversation", "" - ) as Conversation; - return body; + // verify required parameter 'conversationIdentifier' is not null or undefined + if (conversationIdentifier === null || conversationIdentifier === undefined) { + throw new RequiredError("AIApi", "sendMessage", "conversationIdentifier"); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to queryGetDecomposedQuery - * @throws ApiException if the response code was not in [200, 299] - */ - public async queryGetDecomposedQuery(response: ResponseContext): Promise { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body: EurekaDecomposeQueryResponse = ObjectSerializer.deserialize( - ObjectSerializer.parse(await response.body.text(), contentType), - "EurekaDecomposeQueryResponse", "" - ) as EurekaDecomposeQueryResponse; - return body; + // verify required parameter 'sendMessageRequest' is not null or undefined + if (sendMessageRequest === null || sendMessageRequest === undefined) { + throw new RequiredError("AIApi", "sendMessage", "sendMessageRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/conversation/{conversation_identifier}/converse' + .replace('{' + 'conversation_identifier' + '}', encodeURIComponent(String(conversationIdentifier))); + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + public async setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'setNLInstructionsRequest' is not null or undefined + if (setNLInstructionsRequest === null || setNLInstructionsRequest === undefined) { + throw new RequiredError("AIApi", "setNLInstructions", "setNLInstructionsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/instructions/set'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(setNLInstructionsRequest, "SetNLInstructionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest + */ + public async singleAnswer(singleAnswerRequest: SingleAnswerRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'singleAnswerRequest' is not null or undefined + if (singleAnswerRequest === null || singleAnswerRequest === undefined) { + throw new RequiredError("AIApi", "singleAnswer", "singleAnswerRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/answer/create'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + +} + +export class AIApiResponseProcessor { + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + public async createAgentConversation(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: AgentConversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "AgentConversation", "" + ) as AgentConversation; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: AgentConversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "AgentConversation", "" + ) as AgentConversation; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: AgentConversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "AgentConversation", "" + ) as AgentConversation; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConversation + * @throws ApiException if the response code was not in [200, 299] + */ + public async createConversation(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: Conversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "Conversation", "" + ) as Conversation; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: Conversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "Conversation", "" + ) as Conversation; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: Conversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "Conversation", "" + ) as Conversation; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getDataSourceSuggestions + * @throws ApiException if the response code was not in [200, 299] + */ + public async getDataSourceSuggestions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaDataSourceSuggestionResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDataSourceSuggestionResponse", "" + ) as EurekaDataSourceSuggestionResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaDataSourceSuggestionResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDataSourceSuggestionResponse", "" + ) as EurekaDataSourceSuggestionResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaDataSourceSuggestionResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDataSourceSuggestionResponse", "" + ) as EurekaDataSourceSuggestionResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + public async getNLInstructions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaGetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetNLInstructionsResponse", "" + ) as EurekaGetNLInstructionsResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaGetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetNLInstructionsResponse", "" + ) as EurekaGetNLInstructionsResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaGetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetNLInstructionsResponse", "" + ) as EurekaGetNLInstructionsResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getRelevantQuestions + * @throws ApiException if the response code was not in [200, 299] + */ + public async getRelevantQuestions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaGetRelevantQuestionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetRelevantQuestionsResponse", "" + ) as EurekaGetRelevantQuestionsResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaGetRelevantQuestionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetRelevantQuestionsResponse", "" + ) as EurekaGetRelevantQuestionsResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaGetRelevantQuestionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetRelevantQuestionsResponse", "" + ) as EurekaGetRelevantQuestionsResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @throws ApiException if the response code was not in [200, 299] + */ + public async queryGetDecomposedQuery(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaDecomposeQueryResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDecomposeQueryResponse", "" + ) as EurekaDecomposeQueryResponse; + return body; } if (isCodeInRange("201", response.httpStatusCode)) { const body: EurekaDecomposeQueryResponse = ObjectSerializer.deserialize( @@ -334,6 +916,106 @@ export class AIApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessage + * @throws ApiException if the response code was not in [200, 299] + */ + public async sendAgentMessage(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: any = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "any", "" + ) as any; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: any = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "any", "" + ) as any; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: any = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "any", "" + ) as any; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessageStreaming + * @throws ApiException if the response code was not in [200, 299] + */ + public async sendAgentMessageStreaming(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: SendAgentMessageResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SendAgentMessageResponse", "" + ) as SendAgentMessageResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: SendAgentMessageResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SendAgentMessageResponse", "" + ) as SendAgentMessageResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: SendAgentMessageResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SendAgentMessageResponse", "" + ) as SendAgentMessageResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -384,6 +1066,56 @@ export class AIApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + public async setNLInstructions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaSetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" + ) as EurekaSetNLInstructionsResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaSetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" + ) as EurekaSetNLInstructionsResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaSetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" + ) as EurekaSetNLInstructionsResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects diff --git a/sdks/typescript/apis/AuthenticationApi.ts b/sdks/typescript/apis/AuthenticationApi.ts index c1e7ec62b..3f24cbef6 100644 --- a/sdks/typescript/apis/AuthenticationApi.ts +++ b/sdks/typescript/apis/AuthenticationApi.ts @@ -38,7 +38,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -70,7 +71,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -91,7 +93,7 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. * @param getCustomAccessTokenRequest */ public async getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise { @@ -109,7 +111,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -153,7 +156,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -197,7 +201,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -241,7 +246,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -284,7 +290,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -323,7 +330,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -373,7 +381,8 @@ export class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/ConnectionConfigurationsApi.ts b/sdks/typescript/apis/ConnectionConfigurationsApi.ts index 535b9dcb6..ad23d50ce 100644 --- a/sdks/typescript/apis/ConnectionConfigurationsApi.ts +++ b/sdks/typescript/apis/ConnectionConfigurationsApi.ts @@ -39,7 +39,8 @@ export class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFac // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -71,7 +72,7 @@ export class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFac } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ public async createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise { @@ -89,7 +90,8 @@ export class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFac // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -139,7 +141,8 @@ export class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFac // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -171,7 +174,7 @@ export class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFac } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -197,7 +200,8 @@ export class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFac // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/ConnectionsApi.ts b/sdks/typescript/apis/ConnectionsApi.ts index e29c17400..1f7881992 100644 --- a/sdks/typescript/apis/ConnectionsApi.ts +++ b/sdks/typescript/apis/ConnectionsApi.ts @@ -42,7 +42,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -92,7 +93,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -143,7 +145,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -183,7 +186,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -223,7 +227,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -262,7 +267,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -312,7 +318,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -344,7 +351,7 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -370,7 +377,8 @@ export class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/CustomActionApi.ts b/sdks/typescript/apis/CustomActionApi.ts index 2b8d7a0e3..d3126b418 100644 --- a/sdks/typescript/apis/CustomActionApi.ts +++ b/sdks/typescript/apis/CustomActionApi.ts @@ -38,7 +38,8 @@ export class CustomActionApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -89,7 +90,8 @@ export class CustomActionApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -128,7 +130,8 @@ export class CustomActionApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -186,7 +189,8 @@ export class CustomActionApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/CustomCalendarsApi.ts b/sdks/typescript/apis/CustomCalendarsApi.ts index 3c4f6b65d..07082258d 100644 --- a/sdks/typescript/apis/CustomCalendarsApi.ts +++ b/sdks/typescript/apis/CustomCalendarsApi.ts @@ -39,7 +39,8 @@ export class CustomCalendarsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -90,7 +91,8 @@ export class CustomCalendarsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -129,7 +131,8 @@ export class CustomCalendarsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -179,7 +182,8 @@ export class CustomCalendarsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -237,7 +241,8 @@ export class CustomCalendarsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/DBTApi.ts b/sdks/typescript/apis/DBTApi.ts index dc8f7e221..40addadea 100644 --- a/sdks/typescript/apis/DBTApi.ts +++ b/sdks/typescript/apis/DBTApi.ts @@ -58,7 +58,8 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -162,7 +163,8 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -216,12 +218,12 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - public async dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { + public async dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { let _config = _options || this.configuration; // verify required parameter 'dbtConnectionIdentifier' is not null or undefined @@ -230,6 +232,12 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { } + // verify required parameter 'modelTables' is not null or undefined + if (modelTables === null || modelTables === undefined) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "modelTables"); + } + + // verify required parameter 'importWorksheets' is not null or undefined if (importWorksheets === null || importWorksheets === undefined) { throw new RequiredError("DBTApi", "dbtGenerateTml", "importWorksheets"); @@ -238,14 +246,14 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { - // Path Params const localVarPath = '/api/rest/2.0/dbt/generate-tml'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -320,7 +328,8 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -360,7 +369,8 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -419,7 +429,8 @@ export class DBTApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/DataApi.ts b/sdks/typescript/apis/DataApi.ts index ff473ed4f..83b01529e 100644 --- a/sdks/typescript/apis/DataApi.ts +++ b/sdks/typescript/apis/DataApi.ts @@ -40,7 +40,8 @@ export class DataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -90,7 +91,8 @@ export class DataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -140,7 +142,8 @@ export class DataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/EmailCustomizationApi.ts b/sdks/typescript/apis/EmailCustomizationApi.ts index bff3ce125..aa68a6d6a 100644 --- a/sdks/typescript/apis/EmailCustomizationApi.ts +++ b/sdks/typescript/apis/EmailCustomizationApi.ts @@ -21,7 +21,7 @@ import { UpdateEmailCustomizationRequest } from '../models/UpdateEmailCustomizat export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ public async createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -39,7 +39,8 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -90,7 +91,8 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -129,7 +131,8 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -179,7 +182,8 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -211,7 +215,7 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ public async updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -229,7 +233,8 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -272,7 +277,8 @@ export class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/GroupsApi.ts b/sdks/typescript/apis/GroupsApi.ts index 8aa3cbfff..22a95881b 100644 --- a/sdks/typescript/apis/GroupsApi.ts +++ b/sdks/typescript/apis/GroupsApi.ts @@ -40,7 +40,8 @@ export class GroupsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -91,7 +92,8 @@ export class GroupsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -130,7 +132,8 @@ export class GroupsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -180,7 +183,8 @@ export class GroupsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -238,7 +242,8 @@ export class GroupsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/LogApi.ts b/sdks/typescript/apis/LogApi.ts index c6afa1a23..cf1f8253f 100644 --- a/sdks/typescript/apis/LogApi.ts +++ b/sdks/typescript/apis/LogApi.ts @@ -36,7 +36,8 @@ export class LogApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/MetadataApi.ts b/sdks/typescript/apis/MetadataApi.ts index 99b426199..de84c9495 100644 --- a/sdks/typescript/apis/MetadataApi.ts +++ b/sdks/typescript/apis/MetadataApi.ts @@ -55,7 +55,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -87,7 +88,7 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. * @param copyObjectRequest */ public async copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise { @@ -105,7 +106,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -155,7 +157,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -205,7 +208,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -255,7 +259,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -305,7 +310,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -355,7 +361,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -405,7 +412,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -455,7 +463,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -505,7 +514,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -537,7 +547,7 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ public async parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise { @@ -555,7 +565,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -605,7 +616,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -637,7 +649,7 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ public async unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise { @@ -655,7 +667,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -705,7 +718,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -755,7 +769,8 @@ export class MetadataApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/OrgsApi.ts b/sdks/typescript/apis/OrgsApi.ts index a5b21ff10..02512cbc9 100644 --- a/sdks/typescript/apis/OrgsApi.ts +++ b/sdks/typescript/apis/OrgsApi.ts @@ -38,7 +38,8 @@ export class OrgsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -89,7 +90,8 @@ export class OrgsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -128,7 +130,8 @@ export class OrgsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -186,7 +189,8 @@ export class OrgsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/ReportsApi.ts b/sdks/typescript/apis/ReportsApi.ts index 8f4586598..a23ff3db8 100644 --- a/sdks/typescript/apis/ReportsApi.ts +++ b/sdks/typescript/apis/ReportsApi.ts @@ -36,7 +36,8 @@ export class ReportsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -68,7 +69,7 @@ export class ReportsApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ public async exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise { @@ -86,7 +87,8 @@ export class ReportsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/RolesApi.ts b/sdks/typescript/apis/RolesApi.ts index 81008cb4a..79cb869b9 100644 --- a/sdks/typescript/apis/RolesApi.ts +++ b/sdks/typescript/apis/RolesApi.ts @@ -39,7 +39,8 @@ export class RolesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -90,7 +91,8 @@ export class RolesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -129,7 +131,8 @@ export class RolesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -187,7 +190,8 @@ export class RolesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/SchedulesApi.ts b/sdks/typescript/apis/SchedulesApi.ts index 142bc2560..af5849432 100644 --- a/sdks/typescript/apis/SchedulesApi.ts +++ b/sdks/typescript/apis/SchedulesApi.ts @@ -38,7 +38,8 @@ export class SchedulesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -89,7 +90,8 @@ export class SchedulesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -128,7 +130,8 @@ export class SchedulesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -186,7 +189,8 @@ export class SchedulesApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/SecurityApi.ts b/sdks/typescript/apis/SecurityApi.ts index af4aba9cd..7254e81d2 100644 --- a/sdks/typescript/apis/SecurityApi.ts +++ b/sdks/typescript/apis/SecurityApi.ts @@ -45,7 +45,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -95,7 +96,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -145,7 +147,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -195,7 +198,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -245,7 +249,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -295,7 +300,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -345,7 +351,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -395,7 +402,8 @@ export class SecurityApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/SystemApi.ts b/sdks/typescript/apis/SystemApi.ts index 4132de71b..b41adaef2 100644 --- a/sdks/typescript/apis/SystemApi.ts +++ b/sdks/typescript/apis/SystemApi.ts @@ -8,7 +8,10 @@ import {canConsumeForm, isCodeInRange} from '../util'; import {SecurityAuthentication} from '../auth/auth'; +import { CommunicationChannelPreferencesResponse } from '../models/CommunicationChannelPreferencesResponse'; +import { ConfigureCommunicationChannelPreferencesRequest } from '../models/ConfigureCommunicationChannelPreferencesRequest'; import { ErrorResponse } from '../models/ErrorResponse'; +import { SearchCommunicationChannelPreferencesRequest } from '../models/SearchCommunicationChannelPreferencesRequest'; import { SystemConfig } from '../models/SystemConfig'; import { SystemInfo } from '../models/SystemInfo'; import { SystemOverrideInfo } from '../models/SystemOverrideInfo'; @@ -19,6 +22,57 @@ import { UpdateSystemConfigRequest } from '../models/UpdateSystemConfigRequest'; */ export class SystemApiRequestFactory extends BaseAPIRequestFactory { + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + public async configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'configureCommunicationChannelPreferencesRequest' is not null or undefined + if (configureCommunicationChannelPreferencesRequest === null || configureCommunicationChannelPreferencesRequest === undefined) { + throw new RequiredError("SystemApi", "configureCommunicationChannelPreferences", "configureCommunicationChannelPreferencesRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/system/preferences/communication-channels/configure'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(configureCommunicationChannelPreferencesRequest, "ConfigureCommunicationChannelPreferencesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -31,7 +85,8 @@ export class SystemApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -63,7 +118,8 @@ export class SystemApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -95,11 +151,63 @@ export class SystemApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + public async searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'searchCommunicationChannelPreferencesRequest' is not null or undefined + if (searchCommunicationChannelPreferencesRequest === null || searchCommunicationChannelPreferencesRequest === undefined) { + throw new RequiredError("SystemApi", "searchCommunicationChannelPreferences", "searchCommunicationChannelPreferencesRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/system/preferences/communication-channels/search'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchCommunicationChannelPreferencesRequest, "SearchCommunicationChannelPreferencesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; // Apply auth methods authMethod = _config.authMethods["bearerAuth"] @@ -134,7 +242,8 @@ export class SystemApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -169,6 +278,59 @@ export class SystemApiRequestFactory extends BaseAPIRequestFactory { export class SystemApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + public async configureCommunicationChannelPreferences(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: void = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "void", "" + ) as void; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -340,6 +502,63 @@ export class SystemApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + public async searchCommunicationChannelPreferences(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: CommunicationChannelPreferencesResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "CommunicationChannelPreferencesResponse", "" + ) as CommunicationChannelPreferencesResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: CommunicationChannelPreferencesResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "CommunicationChannelPreferencesResponse", "" + ) as CommunicationChannelPreferencesResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects diff --git a/sdks/typescript/apis/TagsApi.ts b/sdks/typescript/apis/TagsApi.ts index 01234b1e5..c71f8668c 100644 --- a/sdks/typescript/apis/TagsApi.ts +++ b/sdks/typescript/apis/TagsApi.ts @@ -39,7 +39,8 @@ export class TagsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -89,7 +90,8 @@ export class TagsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -140,7 +142,8 @@ export class TagsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -179,7 +182,8 @@ export class TagsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -229,7 +233,8 @@ export class TagsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -287,7 +292,8 @@ export class TagsApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/ThoughtSpotRestApi.ts b/sdks/typescript/apis/ThoughtSpotRestApi.ts index 30e0f8364..04f3bb761 100644 --- a/sdks/typescript/apis/ThoughtSpotRestApi.ts +++ b/sdks/typescript/apis/ThoughtSpotRestApi.ts @@ -10,6 +10,7 @@ import {SecurityAuthentication} from '../auth/auth'; import { AccessToken } from '../models/AccessToken'; import { ActivateUserRequest } from '../models/ActivateUserRequest'; +import { AgentConversation } from '../models/AgentConversation'; import { AnswerDataResponse } from '../models/AnswerDataResponse'; import { AssignChangeAuthorRequest } from '../models/AssignChangeAuthorRequest'; import { AssignTagRequest } from '../models/AssignTagRequest'; @@ -19,11 +20,14 @@ import { ColumnSecurityRuleResponse } from '../models/ColumnSecurityRuleResponse import { CommitBranchRequest } from '../models/CommitBranchRequest'; import { CommitHistoryResponse } from '../models/CommitHistoryResponse'; import { CommitResponse } from '../models/CommitResponse'; +import { CommunicationChannelPreferencesResponse } from '../models/CommunicationChannelPreferencesResponse'; +import { ConfigureCommunicationChannelPreferencesRequest } from '../models/ConfigureCommunicationChannelPreferencesRequest'; import { ConnectionConfigurationResponse } from '../models/ConnectionConfigurationResponse'; import { ConnectionConfigurationSearchRequest } from '../models/ConnectionConfigurationSearchRequest'; import { Conversation } from '../models/Conversation'; import { ConvertWorksheetToModelRequest } from '../models/ConvertWorksheetToModelRequest'; import { CopyObjectRequest } from '../models/CopyObjectRequest'; +import { CreateAgentConversationRequest } from '../models/CreateAgentConversationRequest'; import { CreateCalendarRequest } from '../models/CreateCalendarRequest'; import { CreateConfigRequest } from '../models/CreateConfigRequest'; import { CreateConnectionConfigurationRequest } from '../models/CreateConnectionConfigurationRequest'; @@ -40,6 +44,7 @@ import { CreateTagRequest } from '../models/CreateTagRequest'; import { CreateUserGroupRequest } from '../models/CreateUserGroupRequest'; import { CreateUserRequest } from '../models/CreateUserRequest'; import { CreateVariableRequest } from '../models/CreateVariableRequest'; +import { CreateWebhookConfigurationRequest } from '../models/CreateWebhookConfigurationRequest'; import { DbtSearchResponse } from '../models/DbtSearchResponse'; import { DeactivateUserRequest } from '../models/DeactivateUserRequest'; import { DeleteConfigRequest } from '../models/DeleteConfigRequest'; @@ -47,10 +52,15 @@ import { DeleteConnectionConfigurationRequest } from '../models/DeleteConnection import { DeleteConnectionRequest } from '../models/DeleteConnectionRequest'; import { DeleteMetadataRequest } from '../models/DeleteMetadataRequest'; import { DeleteOrgEmailCustomizationRequest } from '../models/DeleteOrgEmailCustomizationRequest'; +import { DeleteWebhookConfigurationsRequest } from '../models/DeleteWebhookConfigurationsRequest'; import { DeployCommitRequest } from '../models/DeployCommitRequest'; import { DeployResponse } from '../models/DeployResponse'; import { ErrorResponse } from '../models/ErrorResponse'; +import { EurekaDataSourceSuggestionResponse } from '../models/EurekaDataSourceSuggestionResponse'; import { EurekaDecomposeQueryResponse } from '../models/EurekaDecomposeQueryResponse'; +import { EurekaGetNLInstructionsResponse } from '../models/EurekaGetNLInstructionsResponse'; +import { EurekaGetRelevantQuestionsResponse } from '../models/EurekaGetRelevantQuestionsResponse'; +import { EurekaSetNLInstructionsResponse } from '../models/EurekaSetNLInstructionsResponse'; import { ExportAnswerReportRequest } from '../models/ExportAnswerReportRequest'; import { ExportLiveboardReportRequest } from '../models/ExportLiveboardReportRequest'; import { ExportMetadataTMLBatchedRequest } from '../models/ExportMetadataTMLBatchedRequest'; @@ -69,8 +79,11 @@ import { ForceLogoutUsersRequest } from '../models/ForceLogoutUsersRequest'; import { GenerateCSVRequest } from '../models/GenerateCSVRequest'; import { GetAsyncImportStatusResponse } from '../models/GetAsyncImportStatusResponse'; import { GetCustomAccessTokenRequest } from '../models/GetCustomAccessTokenRequest'; +import { GetDataSourceSuggestionsRequest } from '../models/GetDataSourceSuggestionsRequest'; import { GetFullAccessTokenRequest } from '../models/GetFullAccessTokenRequest'; +import { GetNLInstructionsRequest } from '../models/GetNLInstructionsRequest'; import { GetObjectAccessTokenRequest } from '../models/GetObjectAccessTokenRequest'; +import { GetRelevantQuestionsRequest } from '../models/GetRelevantQuestionsRequest'; import { GetTokenResponse } from '../models/GetTokenResponse'; import { ImportEPackAsyncTaskStatus } from '../models/ImportEPackAsyncTaskStatus'; import { ImportMetadataTMLAsyncRequest } from '../models/ImportMetadataTMLAsyncRequest'; @@ -103,6 +116,7 @@ import { RevokeTokenRequest } from '../models/RevokeTokenRequest'; import { RoleResponse } from '../models/RoleResponse'; import { SearchCalendarsRequest } from '../models/SearchCalendarsRequest'; import { SearchCommitsRequest } from '../models/SearchCommitsRequest'; +import { SearchCommunicationChannelPreferencesRequest } from '../models/SearchCommunicationChannelPreferencesRequest'; import { SearchConfigRequest } from '../models/SearchConfigRequest'; import { SearchConnectionRequest } from '../models/SearchConnectionRequest'; import { SearchConnectionResponse } from '../models/SearchConnectionResponse'; @@ -119,7 +133,12 @@ import { SearchTagsRequest } from '../models/SearchTagsRequest'; import { SearchUserGroupsRequest } from '../models/SearchUserGroupsRequest'; import { SearchUsersRequest } from '../models/SearchUsersRequest'; import { SearchVariablesRequest } from '../models/SearchVariablesRequest'; +import { SearchWebhookConfigurationsRequest } from '../models/SearchWebhookConfigurationsRequest'; +import { SendAgentMessageRequest } from '../models/SendAgentMessageRequest'; +import { SendAgentMessageResponse } from '../models/SendAgentMessageResponse'; +import { SendAgentMessageStreamingRequest } from '../models/SendAgentMessageStreamingRequest'; import { SendMessageRequest } from '../models/SendMessageRequest'; +import { SetNLInstructionsRequest } from '../models/SetNLInstructionsRequest'; import { ShareMetadataRequest } from '../models/ShareMetadataRequest'; import { SingleAnswerRequest } from '../models/SingleAnswerRequest'; import { SqlQueryResponse } from '../models/SqlQueryResponse'; @@ -150,11 +169,15 @@ import { UpdateUserGroupRequest } from '../models/UpdateUserGroupRequest'; import { UpdateUserRequest } from '../models/UpdateUserRequest'; import { UpdateVariableRequest } from '../models/UpdateVariableRequest'; import { UpdateVariableValuesRequest } from '../models/UpdateVariableValuesRequest'; +import { UpdateWebhookConfigurationRequest } from '../models/UpdateWebhookConfigurationRequest'; import { User } from '../models/User'; import { UserGroupResponse } from '../models/UserGroupResponse'; import { ValidateMergeRequest } from '../models/ValidateMergeRequest'; import { ValidateTokenRequest } from '../models/ValidateTokenRequest'; import { Variable } from '../models/Variable'; +import { WebhookDeleteResponse } from '../models/WebhookDeleteResponse'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { WebhookSearchResponse } from '../models/WebhookSearchResponse'; /** * no description @@ -180,7 +203,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -230,7 +254,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -280,7 +305,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -330,7 +356,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -380,7 +407,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -411,6 +439,57 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + public async configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'configureCommunicationChannelPreferencesRequest' is not null or undefined + if (configureCommunicationChannelPreferencesRequest === null || configureCommunicationChannelPreferencesRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "configureCommunicationChannelPreferences", "configureCommunicationChannelPreferencesRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/system/preferences/communication-channels/configure'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(configureCommunicationChannelPreferencesRequest, "ConfigureCommunicationChannelPreferencesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -430,7 +509,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -480,7 +560,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -512,7 +593,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. * @param copyObjectRequest */ public async copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise { @@ -530,7 +611,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -561,6 +643,57 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + public async createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'createAgentConversationRequest' is not null or undefined + if (createAgentConversationRequest === null || createAgentConversationRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "createAgentConversation", "createAgentConversationRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/agent/conversation/create'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createAgentConversationRequest, "CreateAgentConversationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -580,7 +713,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -630,7 +764,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -680,7 +815,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -712,7 +848,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ public async createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise { @@ -730,7 +866,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -780,7 +917,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -830,7 +968,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -862,7 +1001,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ public async createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -880,7 +1019,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -930,7 +1070,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -980,7 +1121,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1030,7 +1172,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1080,7 +1223,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1130,7 +1274,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1180,7 +1325,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1212,7 +1358,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ public async createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise { @@ -1230,7 +1376,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1261,6 +1408,57 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + public async createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'createWebhookConfigurationRequest' is not null or undefined + if (createWebhookConfigurationRequest === null || createWebhookConfigurationRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "createWebhookConfiguration", "createWebhookConfigurationRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/webhooks/create'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createWebhookConfigurationRequest, "CreateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -1303,7 +1501,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1407,7 +1606,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1461,12 +1661,12 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - public async dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { + public async dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { let _config = _options || this.configuration; // verify required parameter 'dbtConnectionIdentifier' is not null or undefined @@ -1475,6 +1675,12 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } + // verify required parameter 'modelTables' is not null or undefined + if (modelTables === null || modelTables === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "modelTables"); + } + + // verify required parameter 'importWorksheets' is not null or undefined if (importWorksheets === null || importWorksheets === undefined) { throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "importWorksheets"); @@ -1483,14 +1689,14 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { - // Path Params const localVarPath = '/api/rest/2.0/dbt/generate-tml'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1565,7 +1771,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1604,7 +1811,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1655,7 +1863,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1694,7 +1903,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1744,7 +1954,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1794,7 +2005,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1845,7 +2057,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1885,7 +2098,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1925,7 +2139,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -1965,7 +2180,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2004,7 +2220,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2055,7 +2272,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2094,7 +2312,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2145,7 +2364,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2185,7 +2405,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2225,7 +2446,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2265,7 +2487,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2305,7 +2528,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2326,7 +2550,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param identifier Unique id or name of the variable */ public async deleteVariable(identifier: string, _options?: Configuration): Promise { @@ -2345,11 +2569,63 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + public async deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'deleteWebhookConfigurationsRequest' is not null or undefined + if (deleteWebhookConfigurationsRequest === null || deleteWebhookConfigurationsRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "deleteWebhookConfigurations", "deleteWebhookConfigurationsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/webhooks/delete'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteWebhookConfigurationsRequest, "DeleteWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; // Apply auth methods authMethod = _config.authMethods["bearerAuth"] @@ -2384,7 +2660,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2435,7 +2712,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2474,7 +2752,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2506,7 +2785,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ public async exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise { @@ -2524,7 +2803,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2574,7 +2854,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2624,7 +2905,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2674,7 +2956,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2724,7 +3007,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2774,7 +3058,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2824,7 +3109,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2875,7 +3161,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2914,7 +3201,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -2964,7 +3252,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3014,7 +3303,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3064,7 +3354,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3114,7 +3405,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3164,7 +3456,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3214,7 +3507,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3257,7 +3551,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3289,7 +3584,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3310,7 +3606,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. * @param getCustomAccessTokenRequest */ public async getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise { @@ -3328,7 +3624,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3354,25 +3651,26 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getFullAccessTokenRequest + * 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 */ - public async getFullAccessToken(getFullAccessTokenRequest: GetFullAccessTokenRequest, _options?: Configuration): Promise { + public async getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; - // verify required parameter 'getFullAccessTokenRequest' is not null or undefined - if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === undefined) { - throw new RequiredError("ThoughtSpotRestApi", "getFullAccessToken", "getFullAccessTokenRequest"); + // verify required parameter 'getDataSourceSuggestionsRequest' is not null or undefined + if (getDataSourceSuggestionsRequest === null || getDataSourceSuggestionsRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "getDataSourceSuggestions", "getDataSourceSuggestionsRequest"); } // Path Params - const localVarPath = '/api/rest/2.0/auth/token/full'; + const localVarPath = '/api/rest/2.0/ai/data-source-suggestions'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3383,11 +3681,17 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), + ObjectSerializer.serialize(getDataSourceSuggestionsRequest, "GetDataSourceSuggestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default if (defaultAuth?.applySecurityAuthentication) { @@ -3398,25 +3702,26 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getObjectAccessTokenRequest + * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getFullAccessTokenRequest */ - public async getObjectAccessToken(getObjectAccessTokenRequest: GetObjectAccessTokenRequest, _options?: Configuration): Promise { + public async getFullAccessToken(getFullAccessTokenRequest: GetFullAccessTokenRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; - // verify required parameter 'getObjectAccessTokenRequest' is not null or undefined - if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === undefined) { - throw new RequiredError("ThoughtSpotRestApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); + // verify required parameter 'getFullAccessTokenRequest' is not null or undefined + if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "getFullAccessToken", "getFullAccessTokenRequest"); } // Path Params - const localVarPath = '/api/rest/2.0/auth/token/object'; + const localVarPath = '/api/rest/2.0/auth/token/full'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3427,7 +3732,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -3442,22 +3747,41 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest */ - public async getSystemConfig(_options?: Configuration): Promise { + public async getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; + // verify required parameter 'getNLInstructionsRequest' is not null or undefined + if (getNLInstructionsRequest === null || getNLInstructionsRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "getNLInstructions", "getNLInstructionsRequest"); + } + + // Path Params - const localVarPath = '/api/rest/2.0/system/config'; + const localVarPath = '/api/rest/2.0/ai/instructions/get'; // Make Request Context - const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getNLInstructionsRequest, "GetNLInstructionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; // Apply auth methods authMethod = _config.authMethods["bearerAuth"] @@ -3474,28 +3798,41 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getObjectAccessTokenRequest */ - public async getSystemInformation(_options?: Configuration): Promise { + public async getObjectAccessToken(getObjectAccessTokenRequest: GetObjectAccessTokenRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; + // verify required parameter 'getObjectAccessTokenRequest' is not null or undefined + if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); + } + + // Path Params - const localVarPath = '/api/rest/2.0/system'; + const localVarPath = '/api/rest/2.0/auth/token/object'; // Make Request Context - const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") - let authMethod: SecurityAuthentication | undefined; - // Apply auth methods - authMethod = _config.authMethods["bearerAuth"] - if (authMethod?.applySecurityAuthentication) { - await authMethod?.applySecurityAuthentication(requestContext); - } + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default if (defaultAuth?.applySecurityAuthentication) { @@ -3506,18 +3843,136 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. + * 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 */ - public async getSystemOverrideInfo(_options?: Configuration): Promise { + public async getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; + // verify required parameter 'getRelevantQuestionsRequest' is not null or undefined + if (getRelevantQuestionsRequest === null || getRelevantQuestionsRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "getRelevantQuestions", "getRelevantQuestionsRequest"); + } + + // Path Params - const localVarPath = '/api/rest/2.0/system/config-overrides'; + const localVarPath = '/api/rest/2.0/ai/relevant-questions/'; // Make Request Context - const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getRelevantQuestionsRequest, "GetRelevantQuestionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + */ + public async getSystemConfig(_options?: Configuration): Promise { + let _config = _options || this.configuration; + + // Path Params + const localVarPath = '/api/rest/2.0/system/config'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + */ + public async getSystemInformation(_options?: Configuration): Promise { + let _config = _options || this.configuration; + + // Path Params + const localVarPath = '/api/rest/2.0/system'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. + */ + public async getSystemOverrideInfo(_options?: Configuration): Promise { + let _config = _options || this.configuration; + + // Path Params + const localVarPath = '/api/rest/2.0/system/config-overrides'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3556,7 +4011,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3606,7 +4062,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3656,7 +4113,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3706,7 +4164,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3756,7 +4215,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3799,7 +4259,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3820,7 +4281,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ public async parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise { @@ -3838,7 +4299,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3888,7 +4350,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3938,7 +4401,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -3988,7 +4452,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4046,7 +4511,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4096,7 +4562,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4146,7 +4613,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4196,7 +4664,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4227,6 +4696,57 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + public async searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'searchCommunicationChannelPreferencesRequest' is not null or undefined + if (searchCommunicationChannelPreferencesRequest === null || searchCommunicationChannelPreferencesRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "searchCommunicationChannelPreferences", "searchCommunicationChannelPreferencesRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/system/preferences/communication-channels/search'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchCommunicationChannelPreferencesRequest, "SearchCommunicationChannelPreferencesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -4246,7 +4766,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4296,7 +4817,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4346,7 +4868,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4396,7 +4919,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4446,7 +4970,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4496,7 +5021,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4546,7 +5072,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4596,7 +5123,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4646,7 +5174,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4696,7 +5225,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4746,7 +5276,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4796,7 +5327,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4828,7 +5360,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param searchVariablesRequest */ public async searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise { @@ -4846,7 +5378,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4877,6 +5410,167 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + public async searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'searchWebhookConfigurationsRequest' is not null or undefined + if (searchWebhookConfigurationsRequest === null || searchWebhookConfigurationsRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "searchWebhookConfigurations", "searchWebhookConfigurationsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/webhooks/search'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchWebhookConfigurationsRequest, "SearchWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * 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) + * @param sendAgentMessageRequest + */ + public async sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'conversationIdentifier' is not null or undefined + if (conversationIdentifier === null || conversationIdentifier === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessage", "conversationIdentifier"); + } + + + // verify required parameter 'sendAgentMessageRequest' is not null or undefined + if (sendAgentMessageRequest === null || sendAgentMessageRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessage", "sendAgentMessageRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/agent/{conversation_identifier}/converse' + .replace('{' + 'conversation_identifier' + '}', encodeURIComponent(String(conversationIdentifier))); + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendAgentMessageRequest, "SendAgentMessageRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + public async sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'sendAgentMessageStreamingRequest' is not null or undefined + if (sendAgentMessageStreamingRequest === null || sendAgentMessageStreamingRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessageStreaming", "sendAgentMessageStreamingRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/agent/converse/sse'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendAgentMessageStreamingRequest, "SendAgentMessageStreamingRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -4904,7 +5598,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -4935,6 +5630,57 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + public async setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'setNLInstructionsRequest' is not null or undefined + if (setNLInstructionsRequest === null || setNLInstructionsRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "setNLInstructions", "setNLInstructionsRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/ai/instructions/set'; + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(setNLInstructionsRequest, "SetNLInstructionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -4954,7 +5700,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5004,7 +5751,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5054,7 +5802,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5086,7 +5835,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ public async unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise { @@ -5104,7 +5853,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5154,7 +5904,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5212,7 +5963,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5262,7 +6014,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5312,7 +6065,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5362,7 +6116,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5394,7 +6149,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -5420,7 +6175,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5452,7 +6208,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -5478,7 +6234,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5536,7 +6293,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5606,7 +6364,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5694,7 +6453,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ public async updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -5712,7 +6471,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5762,7 +6522,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5812,7 +6573,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5870,7 +6632,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5928,7 +6691,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -5986,7 +6750,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6036,7 +6801,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6094,7 +6860,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6152,7 +6919,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6210,7 +6978,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6242,7 +7011,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -6268,7 +7037,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6300,7 +7070,7 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param updateVariableValuesRequest */ public async updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise { @@ -6313,12 +7083,13 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Path Params - const localVarPath = '/api/rest/2.0/template/variables/update'; + const localVarPath = '/api/rest/2.0/template/variables/update-values'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6349,6 +7120,65 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + public async updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise { + let _config = _options || this.configuration; + + // verify required parameter 'webhookIdentifier' is not null or undefined + if (webhookIdentifier === null || webhookIdentifier === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "updateWebhookConfiguration", "webhookIdentifier"); + } + + + // verify required parameter 'updateWebhookConfigurationRequest' is not null or undefined + if (updateWebhookConfigurationRequest === null || updateWebhookConfigurationRequest === undefined) { + throw new RequiredError("ThoughtSpotRestApi", "updateWebhookConfiguration", "updateWebhookConfigurationRequest"); + } + + + // Path Params + const localVarPath = '/api/rest/2.0/webhooks/{webhook_identifier}/update' + .replace('{' + 'webhook_identifier' + '}', encodeURIComponent(String(webhookIdentifier))); + + // Make Request Context + const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + + + + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateWebhookConfigurationRequest, "UpdateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + + let authMethod: SecurityAuthentication | undefined; + // Apply auth methods + authMethod = _config.authMethods["bearerAuth"] + if (authMethod?.applySecurityAuthentication) { + await authMethod?.applySecurityAuthentication(requestContext); + } + + const defaultAuth: SecurityAuthentication | undefined = _options?.authMethods?.default || this.configuration?.authMethods?.default + if (defaultAuth?.applySecurityAuthentication) { + await defaultAuth?.applySecurityAuthentication(requestContext); + } + + return requestContext; + } + /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -6361,7 +7191,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6400,7 +7231,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6450,7 +7282,8 @@ export class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -6758,6 +7591,59 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + public async configureCommunicationChannelPreferences(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: void = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "void", "" + ) as void; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -6936,6 +7822,56 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + public async createAgentConversation(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: AgentConversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "AgentConversation", "" + ) as AgentConversation; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: AgentConversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "AgentConversation", "" + ) as AgentConversation; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: AgentConversation = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "AgentConversation", "" + ) as AgentConversation; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -7596,10 +8532,67 @@ export class ThoughtSpotRestApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: User = ObjectSerializer.deserialize( + const body: User = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "User", "" + ) as User; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createUserGroup + * @throws ApiException if the response code was not in [200, 299] + */ + public async createUserGroup(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: UserGroupResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "UserGroupResponse", "" + ) as UserGroupResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: UserGroupResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "User", "" - ) as User; + "UserGroupResponse", "" + ) as UserGroupResponse; return body; } @@ -7610,16 +8603,16 @@ export class ThoughtSpotRestApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUserGroup + * @params response Response returned by the server for a request to createVariable * @throws ApiException if the response code was not in [200, 299] */ - public async createUserGroup(response: ResponseContext): Promise { + public async createVariable(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body: UserGroupResponse = ObjectSerializer.deserialize( + const body: Variable = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "UserGroupResponse", "" - ) as UserGroupResponse; + "Variable", "" + ) as Variable; return body; } if (isCodeInRange("400", response.httpStatusCode)) { @@ -7653,10 +8646,10 @@ export class ThoughtSpotRestApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: UserGroupResponse = ObjectSerializer.deserialize( + const body: Variable = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "UserGroupResponse", "" - ) as UserGroupResponse; + "Variable", "" + ) as Variable; return body; } @@ -7667,16 +8660,16 @@ export class ThoughtSpotRestApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createVariable + * @params response Response returned by the server for a request to createWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - public async createVariable(response: ResponseContext): Promise { + public async createWebhookConfiguration(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body: Variable = ObjectSerializer.deserialize( + const body: WebhookResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Variable", "" - ) as Variable; + "WebhookResponse", "" + ) as WebhookResponse; return body; } if (isCodeInRange("400", response.httpStatusCode)) { @@ -7710,10 +8703,10 @@ export class ThoughtSpotRestApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: Variable = ObjectSerializer.deserialize( + const body: WebhookResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Variable", "" - ) as Variable; + "WebhookResponse", "" + ) as WebhookResponse; return body; } @@ -8899,6 +9892,63 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteWebhookConfigurations(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: WebhookDeleteResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "WebhookDeleteResponse", "" + ) as WebhookDeleteResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: WebhookDeleteResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "WebhookDeleteResponse", "" + ) as WebhookDeleteResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -10083,6 +11133,56 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getDataSourceSuggestions + * @throws ApiException if the response code was not in [200, 299] + */ + public async getDataSourceSuggestions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaDataSourceSuggestionResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDataSourceSuggestionResponse", "" + ) as EurekaDataSourceSuggestionResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaDataSourceSuggestionResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDataSourceSuggestionResponse", "" + ) as EurekaDataSourceSuggestionResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaDataSourceSuggestionResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaDataSourceSuggestionResponse", "" + ) as EurekaDataSourceSuggestionResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -10140,6 +11240,56 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + public async getNLInstructions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaGetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetNLInstructionsResponse", "" + ) as EurekaGetNLInstructionsResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaGetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetNLInstructionsResponse", "" + ) as EurekaGetNLInstructionsResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaGetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetNLInstructionsResponse", "" + ) as EurekaGetNLInstructionsResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -10197,6 +11347,56 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getRelevantQuestions + * @throws ApiException if the response code was not in [200, 299] + */ + public async getRelevantQuestions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaGetRelevantQuestionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetRelevantQuestionsResponse", "" + ) as EurekaGetRelevantQuestionsResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaGetRelevantQuestionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetRelevantQuestionsResponse", "" + ) as EurekaGetRelevantQuestionsResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaGetRelevantQuestionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaGetRelevantQuestionsResponse", "" + ) as EurekaGetRelevantQuestionsResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -11011,10 +12211,67 @@ export class ThoughtSpotRestApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: void = ObjectSerializer.deserialize( + const body: void = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "void", "" + ) as void; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCalendars + * @throws ApiException if the response code was not in [200, 299] + */ + public async searchCalendars(response: ResponseContext): Promise > { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: Array = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "Array", "" + ) as Array; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: Array = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "void", "" - ) as void; + "Array", "" + ) as Array; return body; } @@ -11025,16 +12282,16 @@ export class ThoughtSpotRestApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCalendars + * @params response Response returned by the server for a request to searchCommits * @throws ApiException if the response code was not in [200, 299] */ - public async searchCalendars(response: ResponseContext): Promise > { + public async searchCommits(response: ResponseContext): Promise > { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body: Array = ObjectSerializer.deserialize( + const body: Array = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Array", "" - ) as Array; + "Array", "" + ) as Array; return body; } if (isCodeInRange("400", response.httpStatusCode)) { @@ -11068,10 +12325,10 @@ export class ThoughtSpotRestApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: Array = ObjectSerializer.deserialize( + const body: Array = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Array", "" - ) as Array; + "Array", "" + ) as Array; return body; } @@ -11082,16 +12339,16 @@ export class ThoughtSpotRestApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCommits + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences * @throws ApiException if the response code was not in [200, 299] */ - public async searchCommits(response: ResponseContext): Promise > { + public async searchCommunicationChannelPreferences(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body: Array = ObjectSerializer.deserialize( + const body: CommunicationChannelPreferencesResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Array", "" - ) as Array; + "CommunicationChannelPreferencesResponse", "" + ) as CommunicationChannelPreferencesResponse; return body; } if (isCodeInRange("400", response.httpStatusCode)) { @@ -11125,10 +12382,10 @@ export class ThoughtSpotRestApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: Array = ObjectSerializer.deserialize( + const body: CommunicationChannelPreferencesResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Array", "" - ) as Array; + "CommunicationChannelPreferencesResponse", "" + ) as CommunicationChannelPreferencesResponse; return body; } @@ -11869,6 +13126,163 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + public async searchWebhookConfigurations(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: WebhookSearchResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "WebhookSearchResponse", "" + ) as WebhookSearchResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: WebhookSearchResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "WebhookSearchResponse", "" + ) as WebhookSearchResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessage + * @throws ApiException if the response code was not in [200, 299] + */ + public async sendAgentMessage(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: any = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "any", "" + ) as any; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: any = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "any", "" + ) as any; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: any = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "any", "" + ) as any; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessageStreaming + * @throws ApiException if the response code was not in [200, 299] + */ + public async sendAgentMessageStreaming(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: SendAgentMessageResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SendAgentMessageResponse", "" + ) as SendAgentMessageResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: SendAgentMessageResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SendAgentMessageResponse", "" + ) as SendAgentMessageResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: SendAgentMessageResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SendAgentMessageResponse", "" + ) as SendAgentMessageResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -11919,6 +13333,56 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + public async setNLInstructions(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body: EurekaSetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" + ) as EurekaSetNLInstructionsResponse; + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body: EurekaSetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" + ) as EurekaSetNLInstructionsResponse; + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: EurekaSetNLInstructionsResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" + ) as EurekaSetNLInstructionsResponse; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -13253,6 +14717,59 @@ export class ThoughtSpotRestApiResponseProcessor { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateWebhookConfiguration(response: ResponseContext): Promise { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: void = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "void", "" + ) as void; + return body; + } + + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", await response.getBodyAsAny(), response.headers); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects diff --git a/sdks/typescript/apis/UsersApi.ts b/sdks/typescript/apis/UsersApi.ts index a6f2945e4..a8a2a784b 100644 --- a/sdks/typescript/apis/UsersApi.ts +++ b/sdks/typescript/apis/UsersApi.ts @@ -46,7 +46,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -96,7 +97,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -146,7 +148,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -196,7 +199,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -247,7 +251,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -286,7 +291,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -336,7 +342,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -386,7 +393,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -436,7 +444,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -494,7 +503,8 @@ export class UsersApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/VariableApi.ts b/sdks/typescript/apis/VariableApi.ts index c680e1c16..703b9b889 100644 --- a/sdks/typescript/apis/VariableApi.ts +++ b/sdks/typescript/apis/VariableApi.ts @@ -21,7 +21,7 @@ import { Variable } from '../models/Variable'; export class VariableApiRequestFactory extends BaseAPIRequestFactory { /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ public async createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise { @@ -39,7 +39,8 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -71,7 +72,7 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param identifier Unique id or name of the variable */ public async deleteVariable(identifier: string, _options?: Configuration): Promise { @@ -90,7 +91,8 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -111,7 +113,7 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param searchVariablesRequest */ public async searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise { @@ -129,7 +131,8 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -161,7 +164,7 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -187,7 +190,8 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -219,7 +223,7 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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 * @param updateVariableValuesRequest */ public async updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise { @@ -232,12 +236,13 @@ export class VariableApiRequestFactory extends BaseAPIRequestFactory { // Path Params - const localVarPath = '/api/rest/2.0/template/variables/update'; + const localVarPath = '/api/rest/2.0/template/variables/update-values'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/VersionControlApi.ts b/sdks/typescript/apis/VersionControlApi.ts index f449f8e21..fd5f8d9d1 100644 --- a/sdks/typescript/apis/VersionControlApi.ts +++ b/sdks/typescript/apis/VersionControlApi.ts @@ -48,7 +48,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -98,7 +99,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -148,7 +150,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -198,7 +201,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -256,7 +260,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -306,7 +311,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -356,7 +362,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -406,7 +413,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -456,7 +464,8 @@ export class VersionControlApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") diff --git a/sdks/typescript/apis/EmailCustomisationApi.ts b/sdks/typescript/apis/WebhooksApi.ts similarity index 55% rename from sdks/typescript/apis/EmailCustomisationApi.ts rename to sdks/typescript/apis/WebhooksApi.ts index e9c6d563a..ffd9f2f74 100644 --- a/sdks/typescript/apis/EmailCustomisationApi.ts +++ b/sdks/typescript/apis/WebhooksApi.ts @@ -8,35 +8,41 @@ import {canConsumeForm, isCodeInRange} from '../util'; import {SecurityAuthentication} from '../auth/auth'; -import { CreateEmailCustomisationRequest } from '../models/CreateEmailCustomisationRequest'; -import { CreateEmailCustomisationResponse } from '../models/CreateEmailCustomisationResponse'; +import { CreateWebhookConfigurationRequest } from '../models/CreateWebhookConfigurationRequest'; +import { DeleteWebhookConfigurationsRequest } from '../models/DeleteWebhookConfigurationsRequest'; import { ErrorResponse } from '../models/ErrorResponse'; +import { SearchWebhookConfigurationsRequest } from '../models/SearchWebhookConfigurationsRequest'; +import { UpdateWebhookConfigurationRequest } from '../models/UpdateWebhookConfigurationRequest'; +import { WebhookDeleteResponse } from '../models/WebhookDeleteResponse'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { WebhookSearchResponse } from '../models/WebhookSearchResponse'; /** * no description */ -export class EmailCustomisationApiRequestFactory extends BaseAPIRequestFactory { +export class WebhooksApiRequestFactory extends BaseAPIRequestFactory { /** - * 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\": \"\", \"homeUrl\": \"\", \"productName\": \"\", \"footerAddress\": \"
\", \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": , \"hideTsVocabularyDefinitions\": e, \"hideProductName\": , \"hideFooterPhone\": , \"hideFooterAddress\": , \"hidePrivacyPolicy\": , \"hideManageNotification\": , \"fontfamily\": \"\" } } ``` - * @param createEmailCustomisationRequest + * 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. + * @param createWebhookConfigurationRequest */ - public async createEmailCustomisation(createEmailCustomisationRequest: CreateEmailCustomisationRequest, _options?: Configuration): Promise { + public async createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; - // verify required parameter 'createEmailCustomisationRequest' is not null or undefined - if (createEmailCustomisationRequest === null || createEmailCustomisationRequest === undefined) { - throw new RequiredError("EmailCustomisationApi", "createEmailCustomisation", "createEmailCustomisationRequest"); + // verify required parameter 'createWebhookConfigurationRequest' is not null or undefined + if (createWebhookConfigurationRequest === null || createWebhookConfigurationRequest === undefined) { + throw new RequiredError("WebhooksApi", "createWebhookConfiguration", "createWebhookConfigurationRequest"); } // Path Params - const localVarPath = '/api/rest/2.0/customization/email'; + const localVarPath = '/api/rest/2.0/webhooks/create'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.15.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") @@ -47,7 +53,7 @@ export class EmailCustomisationApiRequestFactory extends BaseAPIRequestFactory { ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createEmailCustomisationRequest, "CreateEmailCustomisationRequest", ""), + ObjectSerializer.serialize(createWebhookConfigurationRequest, "CreateWebhookConfigurationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -68,30 +74,41 @@ export class EmailCustomisationApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. - * @param templateIdentifier Unique ID or name of the email customization. + * 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. + * @param deleteWebhookConfigurationsRequest */ - public async deleteEmailCustomisation(templateIdentifier: string, _options?: Configuration): Promise { + public async deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; - // verify required parameter 'templateIdentifier' is not null or undefined - if (templateIdentifier === null || templateIdentifier === undefined) { - throw new RequiredError("EmailCustomisationApi", "deleteEmailCustomisation", "templateIdentifier"); + // verify required parameter 'deleteWebhookConfigurationsRequest' is not null or undefined + if (deleteWebhookConfigurationsRequest === null || deleteWebhookConfigurationsRequest === undefined) { + throw new RequiredError("WebhooksApi", "deleteWebhookConfigurations", "deleteWebhookConfigurationsRequest"); } // Path Params - const localVarPath = '/api/rest/2.0/customization/email/{template_identifier}/delete' - .replace('{' + 'template_identifier' + '}', encodeURIComponent(String(templateIdentifier))); + const localVarPath = '/api/rest/2.0/webhooks/delete'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.15.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteWebhookConfigurationsRequest, "DeleteWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; // Apply auth methods authMethod = _config.authMethods["bearerAuth"] @@ -108,22 +125,41 @@ export class EmailCustomisationApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. + * 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. + * @param searchWebhookConfigurationsRequest */ - public async searchEmailCustomisation(_options?: Configuration): Promise { + public async searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; + // verify required parameter 'searchWebhookConfigurationsRequest' is not null or undefined + if (searchWebhookConfigurationsRequest === null || searchWebhookConfigurationsRequest === undefined) { + throw new RequiredError("WebhooksApi", "searchWebhookConfigurations", "searchWebhookConfigurationsRequest"); + } + + // Path Params - const localVarPath = '/api/rest/2.0/customization/email/search'; + const localVarPath = '/api/rest/2.0/webhooks/search'; // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.15.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchWebhookConfigurationsRequest, "SearchWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; // Apply auth methods authMethod = _config.authMethods["bearerAuth"] @@ -140,22 +176,49 @@ export class EmailCustomisationApiRequestFactory extends BaseAPIRequestFactory { } /** - * 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. + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest */ - public async validateEmailCustomisation(_options?: Configuration): Promise { + public async updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise { let _config = _options || this.configuration; + // verify required parameter 'webhookIdentifier' is not null or undefined + if (webhookIdentifier === null || webhookIdentifier === undefined) { + throw new RequiredError("WebhooksApi", "updateWebhookConfiguration", "webhookIdentifier"); + } + + + // verify required parameter 'updateWebhookConfigurationRequest' is not null or undefined + if (updateWebhookConfigurationRequest === null || updateWebhookConfigurationRequest === undefined) { + throw new RequiredError("WebhooksApi", "updateWebhookConfiguration", "updateWebhookConfigurationRequest"); + } + + // Path Params - const localVarPath = '/api/rest/2.0/customization/email/validate'; + const localVarPath = '/api/rest/2.0/webhooks/{webhook_identifier}/update' + .replace('{' + 'webhook_identifier' + '}', encodeURIComponent(String(webhookIdentifier))); // Make Request Context const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8") - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.15.1") + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0") + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0") + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateWebhookConfigurationRequest, "UpdateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod: SecurityAuthentication | undefined; // Apply auth methods authMethod = _config.authMethods["bearerAuth"] @@ -173,22 +236,22 @@ export class EmailCustomisationApiRequestFactory extends BaseAPIRequestFactory { } -export class EmailCustomisationApiResponseProcessor { +export class WebhooksApiResponseProcessor { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createEmailCustomisation + * @params response Response returned by the server for a request to createWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - public async createEmailCustomisation(response: ResponseContext): Promise { + public async createWebhookConfiguration(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body: CreateEmailCustomisationResponse = ObjectSerializer.deserialize( + const body: WebhookResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "CreateEmailCustomisationResponse", "" - ) as CreateEmailCustomisationResponse; + "WebhookResponse", "" + ) as WebhookResponse; return body; } if (isCodeInRange("400", response.httpStatusCode)) { @@ -198,13 +261,20 @@ export class EmailCustomisationApiResponseProcessor { ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), "ErrorResponse", "" ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), @@ -215,10 +285,10 @@ export class EmailCustomisationApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: CreateEmailCustomisationResponse = ObjectSerializer.deserialize( + const body: WebhookResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "CreateEmailCustomisationResponse", "" - ) as CreateEmailCustomisationResponse; + "WebhookResponse", "" + ) as WebhookResponse; return body; } @@ -229,13 +299,17 @@ export class EmailCustomisationApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteEmailCustomisation + * @params response Response returned by the server for a request to deleteWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - public async deleteEmailCustomisation(response: ResponseContext): Promise { + public async deleteWebhookConfigurations(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body: WebhookDeleteResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "WebhookDeleteResponse", "" + ) as WebhookDeleteResponse; + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( @@ -244,13 +318,20 @@ export class EmailCustomisationApiResponseProcessor { ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), "ErrorResponse", "" ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), @@ -261,10 +342,10 @@ export class EmailCustomisationApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: void = ObjectSerializer.deserialize( + const body: WebhookDeleteResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "void", "" - ) as void; + "WebhookDeleteResponse", "" + ) as WebhookDeleteResponse; return body; } @@ -275,16 +356,16 @@ export class EmailCustomisationApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchEmailCustomisation + * @params response Response returned by the server for a request to searchWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - public async searchEmailCustomisation(response: ResponseContext): Promise > { + public async searchWebhookConfigurations(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body: Array = ObjectSerializer.deserialize( + const body: WebhookSearchResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Array", "" - ) as Array; + "WebhookSearchResponse", "" + ) as WebhookSearchResponse; return body; } if (isCodeInRange("400", response.httpStatusCode)) { @@ -294,13 +375,20 @@ export class EmailCustomisationApiResponseProcessor { ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), "ErrorResponse", "" ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), @@ -311,10 +399,10 @@ export class EmailCustomisationApiResponseProcessor { // Work around for missing responses in specification, e.g. for petstore.yaml if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body: Array = ObjectSerializer.deserialize( + const body: WebhookSearchResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), - "Array", "" - ) as Array; + "WebhookSearchResponse", "" + ) as WebhookSearchResponse; return body; } @@ -325,10 +413,10 @@ export class EmailCustomisationApiResponseProcessor { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateEmailCustomisation + * @params response Response returned by the server for a request to updateWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - public async validateEmailCustomisation(response: ResponseContext): Promise { + public async updateWebhookConfiguration(response: ResponseContext): Promise { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { return; @@ -340,13 +428,20 @@ export class EmailCustomisationApiResponseProcessor { ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), "ErrorResponse", "" ) as ErrorResponse; throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body: ErrorResponse = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "ErrorResponse", "" + ) as ErrorResponse; + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body: ErrorResponse = ObjectSerializer.deserialize( ObjectSerializer.parse(await response.body.text(), contentType), diff --git a/sdks/typescript/dist/index.cjs b/sdks/typescript/dist/index.cjs index 3968c999e..258ffc565 100644 --- a/sdks/typescript/dist/index.cjs +++ b/sdks/typescript/dist/index.cjs @@ -41,6 +41,7 @@ var __async = (__this, __arguments, generator) => { var typescript_exports = {}; __export(typescript_exports, { AIApi: () => PromiseAIApi, + AIContext: () => AIContext, APIKey: () => APIKey, APIKeyInput: () => APIKeyInput, AccessToken: () => AccessToken, @@ -51,7 +52,9 @@ __export(typescript_exports, { ActionDetailsInput: () => ActionDetailsInput, ActionDetailsInputCreate: () => ActionDetailsInputCreate, ActivateUserRequest: () => ActivateUserRequest, + AgentConversation: () => AgentConversation, AnswerContent: () => AnswerContent, + AnswerContextInput: () => AnswerContextInput, AnswerDataResponse: () => AnswerDataResponse, ApiException: () => ApiException, AssignChangeAuthorRequest: () => AssignChangeAuthorRequest, @@ -86,14 +89,21 @@ __export(typescript_exports, { CommitHistoryResponse: () => CommitHistoryResponse, CommitResponse: () => CommitResponse, CommiterType: () => CommiterType, + CommunicationChannelPreferencesResponse: () => CommunicationChannelPreferencesResponse, + ConfigureCommunicationChannelPreferencesRequest: () => ConfigureCommunicationChannelPreferencesRequest, ConnectionConfigurationResponse: () => ConnectionConfigurationResponse, ConnectionConfigurationSearchRequest: () => ConnectionConfigurationSearchRequest, ConnectionConfigurationsApi: () => PromiseConnectionConfigurationsApi, ConnectionInput: () => ConnectionInput, ConnectionsApi: () => PromiseConnectionsApi, + ContextPayloadV2Input: () => ContextPayloadV2Input, Conversation: () => Conversation, + ConversationSettingsInput: () => ConversationSettingsInput, ConvertWorksheetToModelRequest: () => ConvertWorksheetToModelRequest, CopyObjectRequest: () => CopyObjectRequest, + CreateAgentConversationRequest: () => CreateAgentConversationRequest, + CreateAgentConversationRequestConversationSettings: () => CreateAgentConversationRequestConversationSettings, + CreateAgentConversationRequestMetadataContext: () => CreateAgentConversationRequestMetadataContext, CreateCalendarRequest: () => CreateCalendarRequest, CreateCalendarRequestTableReference: () => CreateCalendarRequestTableReference, CreateConfigRequest: () => CreateConfigRequest, @@ -118,6 +128,9 @@ __export(typescript_exports, { CreateUserGroupRequest: () => CreateUserGroupRequest, CreateUserRequest: () => CreateUserRequest, CreateVariableRequest: () => CreateVariableRequest, + CreateWebhookConfigurationRequest: () => CreateWebhookConfigurationRequest, + CreateWebhookConfigurationRequestAuthentication: () => CreateWebhookConfigurationRequestAuthentication, + CreateWebhookConfigurationRequestSignatureVerification: () => CreateWebhookConfigurationRequestSignatureVerification, CronExpression: () => CronExpression, CronExpressionInput: () => CronExpressionInput, CustomActionApi: () => PromiseCustomActionApi, @@ -125,6 +138,8 @@ __export(typescript_exports, { CustomCalendarsApi: () => PromiseCustomCalendarsApi, DBTApi: () => PromiseDBTApi, DataApi: () => PromiseDataApi, + DataSource: () => DataSource, + DataSourceContextInput: () => DataSourceContextInput, DataWarehouseObjectInput: () => DataWarehouseObjectInput, DataWarehouseObjects: () => DataWarehouseObjects, Database: () => Database, @@ -140,13 +155,22 @@ __export(typescript_exports, { DeleteMetadataRequest: () => DeleteMetadataRequest, DeleteMetadataTypeInput: () => DeleteMetadataTypeInput, DeleteOrgEmailCustomizationRequest: () => DeleteOrgEmailCustomizationRequest, + DeleteWebhookConfigurationsRequest: () => DeleteWebhookConfigurationsRequest, DeployCommitRequest: () => DeployCommitRequest, DeployResponse: () => DeployResponse, EmailCustomizationApi: () => PromiseEmailCustomizationApi, + EntityHeader: () => EntityHeader, ErrorResponse: () => ErrorResponse, + EurekaDataSourceSuggestionResponse: () => EurekaDataSourceSuggestionResponse, EurekaDecomposeQueryResponse: () => EurekaDecomposeQueryResponse, + EurekaGetNLInstructionsResponse: () => EurekaGetNLInstructionsResponse, + EurekaGetRelevantQuestionsResponse: () => EurekaGetRelevantQuestionsResponse, EurekaLLMDecomposeQueryResponse: () => EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery: () => EurekaLLMSuggestedQuery, + EurekaRelevantQuestion: () => EurekaRelevantQuestion, + EurekaSetNLInstructionsResponse: () => EurekaSetNLInstructionsResponse, + EventChannelConfig: () => EventChannelConfig, + EventChannelConfigInput: () => EventChannelConfigInput, ExcludeMetadataListItemInput: () => ExcludeMetadataListItemInput, ExportAnswerReportRequest: () => ExportAnswerReportRequest, ExportAnswerReportRequestRegionalSettings: () => ExportAnswerReportRequestRegionalSettings, @@ -180,9 +204,14 @@ __export(typescript_exports, { GenericInfo: () => GenericInfo, GetAsyncImportStatusResponse: () => GetAsyncImportStatusResponse, GetCustomAccessTokenRequest: () => GetCustomAccessTokenRequest, + GetDataSourceSuggestionsRequest: () => GetDataSourceSuggestionsRequest, GetFullAccessTokenRequest: () => GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters: () => GetFullAccessTokenRequestUserParameters, + GetNLInstructionsRequest: () => GetNLInstructionsRequest, GetObjectAccessTokenRequest: () => GetObjectAccessTokenRequest, + GetRelevantQuestionsRequest: () => GetRelevantQuestionsRequest, + GetRelevantQuestionsRequestAiContext: () => GetRelevantQuestionsRequestAiContext, + GetRelevantQuestionsRequestMetadataContext: () => GetRelevantQuestionsRequestMetadataContext, GetTokenResponse: () => GetTokenResponse, GroupObject: () => GroupObject, GroupsApi: () => PromiseGroupsApi, @@ -201,12 +230,12 @@ __export(typescript_exports, { ImportUsersRequest: () => ImportUsersRequest, ImportUsersResponse: () => ImportUsersResponse, InputEurekaNLSRequest: () => InputEurekaNLSRequest, - InputVariableValue: () => InputVariableValue, IsomorphicFetchHttpLibrary: () => IsomorphicFetchHttpLibrary, JWTMetadataObject: () => JWTMetadataObject, JWTParameter: () => JWTParameter, JWTUserOptions: () => JWTUserOptions, JWTUserOptionsFull: () => JWTUserOptionsFull, + LBContextInput: () => LBContextInput, LiveboardContent: () => LiveboardContent, LiveboardDataResponse: () => LiveboardDataResponse, LiveboardOptions: () => LiveboardOptions, @@ -216,6 +245,7 @@ __export(typescript_exports, { LoginRequest: () => LoginRequest, MetadataApi: () => PromiseMetadataApi, MetadataAssociationItem: () => MetadataAssociationItem, + MetadataContext: () => MetadataContext, MetadataInput: () => MetadataInput, MetadataListItemInput: () => MetadataListItemInput, MetadataObject: () => MetadataObject, @@ -223,9 +253,15 @@ __export(typescript_exports, { MetadataSearchResponse: () => MetadataSearchResponse, MetadataSearchSortOptions: () => MetadataSearchSortOptions, ModelTableList: () => ModelTableList, + NLInstructionsInfo: () => NLInstructionsInfo, + NLInstructionsInfoInput: () => NLInstructionsInfoInput, ObjectIDAndName: () => ObjectIDAndName, Org: () => Org, + OrgChannelConfigInput: () => OrgChannelConfigInput, + OrgChannelConfigResponse: () => OrgChannelConfigResponse, + OrgDetails: () => OrgDetails, OrgInfo: () => OrgInfo, + OrgPreferenceSearchCriteriaInput: () => OrgPreferenceSearchCriteriaInput, OrgResponse: () => OrgResponse, OrgType: () => OrgType, OrgsApi: () => PromiseOrgsApi, @@ -294,6 +330,7 @@ __export(typescript_exports, { SearchCalendarsRequest: () => SearchCalendarsRequest, SearchCalendarsRequestSortOptions: () => SearchCalendarsRequestSortOptions, SearchCommitsRequest: () => SearchCommitsRequest, + SearchCommunicationChannelPreferencesRequest: () => SearchCommunicationChannelPreferencesRequest, SearchConfigRequest: () => SearchConfigRequest, SearchConnectionRequest: () => SearchConnectionRequest, SearchConnectionRequestSortOptions: () => SearchConnectionRequestSortOptions, @@ -318,10 +355,16 @@ __export(typescript_exports, { SearchUsersRequest: () => SearchUsersRequest, SearchUsersRequestSortOptions: () => SearchUsersRequestSortOptions, SearchVariablesRequest: () => SearchVariablesRequest, + SearchWebhookConfigurationsRequest: () => SearchWebhookConfigurationsRequest, + SearchWebhookConfigurationsRequestSortOptions: () => SearchWebhookConfigurationsRequestSortOptions, SecurityApi: () => PromiseSecurityApi, SelfDecodingBody: () => SelfDecodingBody, + SendAgentMessageRequest: () => SendAgentMessageRequest, + SendAgentMessageResponse: () => SendAgentMessageResponse, + SendAgentMessageStreamingRequest: () => SendAgentMessageStreamingRequest, SendMessageRequest: () => SendMessageRequest, ServerConfiguration: () => ServerConfiguration, + SetNLInstructionsRequest: () => SetNLInstructionsRequest, ShareMetadataRequest: () => ShareMetadataRequest, ShareMetadataTypeInput: () => ShareMetadataTypeInput, SharePermissionsInput: () => SharePermissionsInput, @@ -377,6 +420,7 @@ __export(typescript_exports, { UpdateUserRequest: () => UpdateUserRequest, UpdateVariableRequest: () => UpdateVariableRequest, UpdateVariableValuesRequest: () => UpdateVariableValuesRequest, + UpdateWebhookConfigurationRequest: () => UpdateWebhookConfigurationRequest, User: () => User, UserGroup: () => UserGroup, UserGroupResponse: () => UserGroupResponse, @@ -387,12 +431,34 @@ __export(typescript_exports, { UsersApi: () => PromiseUsersApi, ValidateMergeRequest: () => ValidateMergeRequest, ValidateTokenRequest: () => ValidateTokenRequest, + ValueScopeInput: () => ValueScopeInput, Variable: () => Variable, VariableApi: () => PromiseVariableApi, VariableDetailInput: () => VariableDetailInput, + VariableUpdateAssignmentInput: () => VariableUpdateAssignmentInput, + VariableUpdateScopeInput: () => VariableUpdateScopeInput, VariableValue: () => VariableValue, - VariableValueInput: () => VariableValueInput, + VariableValues: () => VariableValues, VersionControlApi: () => PromiseVersionControlApi, + WebhookAuthApiKey: () => WebhookAuthApiKey, + WebhookAuthApiKeyInput: () => WebhookAuthApiKeyInput, + WebhookAuthBasicAuth: () => WebhookAuthBasicAuth, + WebhookAuthBasicAuthInput: () => WebhookAuthBasicAuthInput, + WebhookAuthOAuth2: () => WebhookAuthOAuth2, + WebhookAuthOAuth2Input: () => WebhookAuthOAuth2Input, + WebhookAuthentication: () => WebhookAuthentication, + WebhookAuthenticationInput: () => WebhookAuthenticationInput, + WebhookDeleteFailure: () => WebhookDeleteFailure, + WebhookDeleteResponse: () => WebhookDeleteResponse, + WebhookOrg: () => WebhookOrg, + WebhookPagination: () => WebhookPagination, + WebhookResponse: () => WebhookResponse, + WebhookSearchResponse: () => WebhookSearchResponse, + WebhookSignatureVerification: () => WebhookSignatureVerification, + WebhookSignatureVerificationInput: () => WebhookSignatureVerificationInput, + WebhookSortOptionsInput: () => WebhookSortOptionsInput, + WebhookUser: () => WebhookUser, + WebhooksApi: () => PromiseWebhooksApi, configureAuthMethods: () => configureAuthMethods, createBasicConfig: () => createBasicConfig, createBearerAuthenticationConfig: () => createBearerAuthenticationConfig, @@ -665,6 +731,31 @@ function configureAuthMethods(config) { return authMethods; } +// models/AIContext.ts +var _AIContext = class _AIContext { + static getAttributeTypeMap() { + return _AIContext.attributeTypeMap; + } + constructor() { + } +}; +_AIContext.discriminator = void 0; +_AIContext.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "content", + "baseName": "content", + "type": "Array", + "format": "" + } +]; +var AIContext = _AIContext; + // models/APIKey.ts var _APIKey = class _APIKey { static getAttributeTypeMap() { @@ -951,6 +1042,25 @@ _ActivateUserRequest.attributeTypeMap = [ ]; var ActivateUserRequest = _ActivateUserRequest; +// models/AgentConversation.ts +var _AgentConversation = class _AgentConversation { + static getAttributeTypeMap() { + return _AgentConversation.attributeTypeMap; + } + constructor() { + } +}; +_AgentConversation.discriminator = void 0; +_AgentConversation.attributeTypeMap = [ + { + "name": "conversation_id", + "baseName": "conversation_id", + "type": "string", + "format": "" + } +]; +var AgentConversation = _AgentConversation; + // models/AnswerContent.ts var _AnswerContent = class _AnswerContent { static getAttributeTypeMap() { @@ -1006,6 +1116,31 @@ _AnswerContent.attributeTypeMap = [ ]; var AnswerContent = _AnswerContent; +// models/AnswerContextInput.ts +var _AnswerContextInput = class _AnswerContextInput { + static getAttributeTypeMap() { + return _AnswerContextInput.attributeTypeMap; + } + constructor() { + } +}; +_AnswerContextInput.discriminator = void 0; +_AnswerContextInput.attributeTypeMap = [ + { + "name": "session_identifier", + "baseName": "session_identifier", + "type": "string", + "format": "" + }, + { + "name": "generation_number", + "baseName": "generation_number", + "type": "number", + "format": "int32" + } +]; +var AnswerContextInput = _AnswerContextInput; + // models/AnswerDataResponse.ts var _AnswerDataResponse = class _AnswerDataResponse { static getAttributeTypeMap() { @@ -1569,8 +1704,8 @@ _ColumnSecurityRule.attributeTypeMap = [ "format": "" }, { - "name": "sourceTableDetails", - "baseName": "sourceTableDetails", + "name": "source_table_details", + "baseName": "source_table_details", "type": "ColumnSecurityRuleSourceTable", "format": "" } @@ -1663,20 +1798,20 @@ var _ColumnSecurityRuleResponse = class _ColumnSecurityRuleResponse { _ColumnSecurityRuleResponse.discriminator = void 0; _ColumnSecurityRuleResponse.attributeTypeMap = [ { - "name": "guid", - "baseName": "guid", + "name": "table_guid", + "baseName": "table_guid", "type": "string", "format": "" }, { - "name": "objId", - "baseName": "objId", + "name": "obj_id", + "baseName": "obj_id", "type": "string", "format": "" }, { - "name": "columnSecurityRules", - "baseName": "columnSecurityRules", + "name": "column_security_rules", + "baseName": "column_security_rules", "type": "Array", "format": "" } @@ -1961,6 +2096,56 @@ _CommiterType.attributeTypeMap = [ ]; var CommiterType = _CommiterType; +// models/CommunicationChannelPreferencesResponse.ts +var _CommunicationChannelPreferencesResponse = class _CommunicationChannelPreferencesResponse { + static getAttributeTypeMap() { + return _CommunicationChannelPreferencesResponse.attributeTypeMap; + } + constructor() { + } +}; +_CommunicationChannelPreferencesResponse.discriminator = void 0; +_CommunicationChannelPreferencesResponse.attributeTypeMap = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } +]; +var CommunicationChannelPreferencesResponse = _CommunicationChannelPreferencesResponse; + +// models/ConfigureCommunicationChannelPreferencesRequest.ts +var _ConfigureCommunicationChannelPreferencesRequest = class _ConfigureCommunicationChannelPreferencesRequest { + static getAttributeTypeMap() { + return _ConfigureCommunicationChannelPreferencesRequest.attributeTypeMap; + } + constructor() { + } +}; +_ConfigureCommunicationChannelPreferencesRequest.discriminator = void 0; +_ConfigureCommunicationChannelPreferencesRequest.attributeTypeMap = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } +]; +var ConfigureCommunicationChannelPreferencesRequest = _ConfigureCommunicationChannelPreferencesRequest; + // models/ConnectionConfigurationResponse.ts var _ConnectionConfigurationResponse = class _ConnectionConfigurationResponse { static getAttributeTypeMap() { @@ -2090,6 +2275,43 @@ _ConnectionInput.attributeTypeMap = [ ]; var ConnectionInput = _ConnectionInput; +// models/ContextPayloadV2Input.ts +var _ContextPayloadV2Input = class _ContextPayloadV2Input { + static getAttributeTypeMap() { + return _ContextPayloadV2Input.attributeTypeMap; + } + constructor() { + } +}; +_ContextPayloadV2Input.discriminator = void 0; +_ContextPayloadV2Input.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "ContextPayloadV2InputTypeEnum", + "format": "" + }, + { + "name": "answer_context", + "baseName": "answer_context", + "type": "AnswerContextInput", + "format": "" + }, + { + "name": "liveboard_context", + "baseName": "liveboard_context", + "type": "LBContextInput", + "format": "" + }, + { + "name": "data_source_context", + "baseName": "data_source_context", + "type": "DataSourceContextInput", + "format": "" + } +]; +var ContextPayloadV2Input = _ContextPayloadV2Input; + // models/Conversation.ts var _Conversation = class _Conversation { static getAttributeTypeMap() { @@ -2109,6 +2331,37 @@ _Conversation.attributeTypeMap = [ ]; var Conversation = _Conversation; +// models/ConversationSettingsInput.ts +var _ConversationSettingsInput = class _ConversationSettingsInput { + static getAttributeTypeMap() { + return _ConversationSettingsInput.attributeTypeMap; + } + constructor() { + } +}; +_ConversationSettingsInput.discriminator = void 0; +_ConversationSettingsInput.attributeTypeMap = [ + { + "name": "enable_contextual_change_analysis", + "baseName": "enable_contextual_change_analysis", + "type": "boolean", + "format": "" + }, + { + "name": "enable_natural_language_answer_generation", + "baseName": "enable_natural_language_answer_generation", + "type": "boolean", + "format": "" + }, + { + "name": "enable_reasoning", + "baseName": "enable_reasoning", + "type": "boolean", + "format": "" + } +]; +var ConversationSettingsInput = _ConversationSettingsInput; + // models/ConvertWorksheetToModelRequest.ts var _ConvertWorksheetToModelRequest = class _ConvertWorksheetToModelRequest { static getAttributeTypeMap() { @@ -2183,6 +2436,99 @@ _CopyObjectRequest.attributeTypeMap = [ ]; var CopyObjectRequest = _CopyObjectRequest; +// models/CreateAgentConversationRequest.ts +var _CreateAgentConversationRequest = class _CreateAgentConversationRequest { + static getAttributeTypeMap() { + return _CreateAgentConversationRequest.attributeTypeMap; + } + constructor() { + } +}; +_CreateAgentConversationRequest.discriminator = void 0; +_CreateAgentConversationRequest.attributeTypeMap = [ + { + "name": "metadata_context", + "baseName": "metadata_context", + "type": "CreateAgentConversationRequestMetadataContext", + "format": "" + }, + { + "name": "conversation_settings", + "baseName": "conversation_settings", + "type": "CreateAgentConversationRequestConversationSettings", + "format": "" + } +]; +var CreateAgentConversationRequest = _CreateAgentConversationRequest; + +// models/CreateAgentConversationRequestConversationSettings.ts +var _CreateAgentConversationRequestConversationSettings = class _CreateAgentConversationRequestConversationSettings { + static getAttributeTypeMap() { + return _CreateAgentConversationRequestConversationSettings.attributeTypeMap; + } + constructor() { + } +}; +_CreateAgentConversationRequestConversationSettings.discriminator = void 0; +_CreateAgentConversationRequestConversationSettings.attributeTypeMap = [ + { + "name": "enable_contextual_change_analysis", + "baseName": "enable_contextual_change_analysis", + "type": "boolean", + "format": "" + }, + { + "name": "enable_natural_language_answer_generation", + "baseName": "enable_natural_language_answer_generation", + "type": "boolean", + "format": "" + }, + { + "name": "enable_reasoning", + "baseName": "enable_reasoning", + "type": "boolean", + "format": "" + } +]; +var CreateAgentConversationRequestConversationSettings = _CreateAgentConversationRequestConversationSettings; + +// models/CreateAgentConversationRequestMetadataContext.ts +var _CreateAgentConversationRequestMetadataContext = class _CreateAgentConversationRequestMetadataContext { + static getAttributeTypeMap() { + return _CreateAgentConversationRequestMetadataContext.attributeTypeMap; + } + constructor() { + } +}; +_CreateAgentConversationRequestMetadataContext.discriminator = void 0; +_CreateAgentConversationRequestMetadataContext.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "CreateAgentConversationRequestMetadataContextTypeEnum", + "format": "" + }, + { + "name": "answer_context", + "baseName": "answer_context", + "type": "AnswerContextInput", + "format": "" + }, + { + "name": "liveboard_context", + "baseName": "liveboard_context", + "type": "LBContextInput", + "format": "" + }, + { + "name": "data_source_context", + "baseName": "data_source_context", + "type": "DataSourceContextInput", + "format": "" + } +]; +var CreateAgentConversationRequestMetadataContext = _CreateAgentConversationRequestMetadataContext; + // models/CreateCalendarRequest.ts var _CreateCalendarRequest = class _CreateCalendarRequest { static getAttributeTypeMap() { @@ -2779,6 +3125,18 @@ _CreateEmailCustomizationRequestTemplateProperties.attributeTypeMap = [ "baseName": "hide_modify_alert", "type": "boolean", "format": "" + }, + { + "name": "company_privacy_policy_url", + "baseName": "company_privacy_policy_url", + "type": "string", + "format": "" + }, + { + "name": "company_website_url", + "baseName": "company_website_url", + "type": "string", + "format": "" } ]; var CreateEmailCustomizationRequestTemplateProperties = _CreateEmailCustomizationRequestTemplateProperties; @@ -3339,79 +3697,208 @@ _CreateVariableRequest.attributeTypeMap = [ "format": "" }, { - "name": "sensitive", - "baseName": "sensitive", + "name": "is_sensitive", + "baseName": "is_sensitive", "type": "boolean", "format": "" }, { - "name": "values", - "baseName": "values", - "type": "Array", + "name": "data_type", + "baseName": "data_type", + "type": "CreateVariableRequestDataTypeEnum", "format": "" } ]; var CreateVariableRequest = _CreateVariableRequest; -// models/CronExpression.ts -var _CronExpression = class _CronExpression { +// models/CreateWebhookConfigurationRequest.ts +var _CreateWebhookConfigurationRequest = class _CreateWebhookConfigurationRequest { static getAttributeTypeMap() { - return _CronExpression.attributeTypeMap; + return _CreateWebhookConfigurationRequest.attributeTypeMap; } constructor() { } }; -_CronExpression.discriminator = void 0; -_CronExpression.attributeTypeMap = [ +_CreateWebhookConfigurationRequest.discriminator = void 0; +_CreateWebhookConfigurationRequest.attributeTypeMap = [ { - "name": "day_of_month", - "baseName": "day_of_month", + "name": "name", + "baseName": "name", "type": "string", "format": "" }, { - "name": "day_of_week", - "baseName": "day_of_week", + "name": "description", + "baseName": "description", "type": "string", "format": "" }, { - "name": "hour", - "baseName": "hour", + "name": "url", + "baseName": "url", "type": "string", "format": "" }, { - "name": "minute", - "baseName": "minute", + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "CreateWebhookConfigurationRequestAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "CreateWebhookConfigurationRequestSignatureVerification", + "format": "" + } +]; +var CreateWebhookConfigurationRequest = _CreateWebhookConfigurationRequest; + +// models/CreateWebhookConfigurationRequestAuthentication.ts +var _CreateWebhookConfigurationRequestAuthentication = class _CreateWebhookConfigurationRequestAuthentication { + static getAttributeTypeMap() { + return _CreateWebhookConfigurationRequestAuthentication.attributeTypeMap; + } + constructor() { + } +}; +_CreateWebhookConfigurationRequestAuthentication.discriminator = void 0; +_CreateWebhookConfigurationRequestAuthentication.attributeTypeMap = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKeyInput", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuthInput", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", "type": "string", "format": "" }, { - "name": "month", - "baseName": "month", + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2Input", + "format": "" + } +]; +var CreateWebhookConfigurationRequestAuthentication = _CreateWebhookConfigurationRequestAuthentication; + +// models/CreateWebhookConfigurationRequestSignatureVerification.ts +var _CreateWebhookConfigurationRequestSignatureVerification = class _CreateWebhookConfigurationRequestSignatureVerification { + static getAttributeTypeMap() { + return _CreateWebhookConfigurationRequestSignatureVerification.attributeTypeMap; + } + constructor() { + } +}; +_CreateWebhookConfigurationRequestSignatureVerification.discriminator = void 0; +_CreateWebhookConfigurationRequestSignatureVerification.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "CreateWebhookConfigurationRequestSignatureVerificationTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", "type": "string", "format": "" }, { - "name": "second", - "baseName": "second", + "name": "algorithm", + "baseName": "algorithm", + "type": "CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", "type": "string", "format": "" } ]; -var CronExpression = _CronExpression; +var CreateWebhookConfigurationRequestSignatureVerification = _CreateWebhookConfigurationRequestSignatureVerification; -// models/CronExpressionInput.ts -var _CronExpressionInput = class _CronExpressionInput { +// models/CronExpression.ts +var _CronExpression = class _CronExpression { static getAttributeTypeMap() { - return _CronExpressionInput.attributeTypeMap; + return _CronExpression.attributeTypeMap; } constructor() { } }; -_CronExpressionInput.discriminator = void 0; -_CronExpressionInput.attributeTypeMap = [ +_CronExpression.discriminator = void 0; +_CronExpression.attributeTypeMap = [ + { + "name": "day_of_month", + "baseName": "day_of_month", + "type": "string", + "format": "" + }, + { + "name": "day_of_week", + "baseName": "day_of_week", + "type": "string", + "format": "" + }, + { + "name": "hour", + "baseName": "hour", + "type": "string", + "format": "" + }, + { + "name": "minute", + "baseName": "minute", + "type": "string", + "format": "" + }, + { + "name": "month", + "baseName": "month", + "type": "string", + "format": "" + }, + { + "name": "second", + "baseName": "second", + "type": "string", + "format": "" + } +]; +var CronExpression = _CronExpression; + +// models/CronExpressionInput.ts +var _CronExpressionInput = class _CronExpressionInput { + static getAttributeTypeMap() { + return _CronExpressionInput.attributeTypeMap; + } + constructor() { + } +}; +_CronExpressionInput.discriminator = void 0; +_CronExpressionInput.attributeTypeMap = [ { "name": "day_of_month", "baseName": "day_of_month", @@ -3476,6 +3963,56 @@ _CustomActionMetadataTypeInput.attributeTypeMap = [ ]; var CustomActionMetadataTypeInput = _CustomActionMetadataTypeInput; +// models/DataSource.ts +var _DataSource = class _DataSource { + static getAttributeTypeMap() { + return _DataSource.attributeTypeMap; + } + constructor() { + } +}; +_DataSource.discriminator = void 0; +_DataSource.attributeTypeMap = [ + { + "name": "confidence", + "baseName": "confidence", + "type": "number", + "format": "float" + }, + { + "name": "details", + "baseName": "details", + "type": "EntityHeader", + "format": "" + }, + { + "name": "reasoning", + "baseName": "reasoning", + "type": "string", + "format": "" + } +]; +var DataSource = _DataSource; + +// models/DataSourceContextInput.ts +var _DataSourceContextInput = class _DataSourceContextInput { + static getAttributeTypeMap() { + return _DataSourceContextInput.attributeTypeMap; + } + constructor() { + } +}; +_DataSourceContextInput.discriminator = void 0; +_DataSourceContextInput.attributeTypeMap = [ + { + "name": "guid", + "baseName": "guid", + "type": "string", + "format": "" + } +]; +var DataSourceContextInput = _DataSourceContextInput; + // models/DataWarehouseObjectInput.ts var _DataWarehouseObjectInput = class _DataWarehouseObjectInput { static getAttributeTypeMap() { @@ -3851,6 +4388,25 @@ _DeleteOrgEmailCustomizationRequest.attributeTypeMap = [ ]; var DeleteOrgEmailCustomizationRequest = _DeleteOrgEmailCustomizationRequest; +// models/DeleteWebhookConfigurationsRequest.ts +var _DeleteWebhookConfigurationsRequest = class _DeleteWebhookConfigurationsRequest { + static getAttributeTypeMap() { + return _DeleteWebhookConfigurationsRequest.attributeTypeMap; + } + constructor() { + } +}; +_DeleteWebhookConfigurationsRequest.discriminator = void 0; +_DeleteWebhookConfigurationsRequest.attributeTypeMap = [ + { + "name": "webhook_identifiers", + "baseName": "webhook_identifiers", + "type": "Array", + "format": "" + } +]; +var DeleteWebhookConfigurationsRequest = _DeleteWebhookConfigurationsRequest; + // models/DeployCommitRequest.ts var _DeployCommitRequest = class _DeployCommitRequest { static getAttributeTypeMap() { @@ -3931,6 +4487,37 @@ _DeployResponse.attributeTypeMap = [ ]; var DeployResponse = _DeployResponse; +// models/EntityHeader.ts +var _EntityHeader = class _EntityHeader { + static getAttributeTypeMap() { + return _EntityHeader.attributeTypeMap; + } + constructor() { + } +}; +_EntityHeader.discriminator = void 0; +_EntityHeader.attributeTypeMap = [ + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "data_source_name", + "baseName": "data_source_name", + "type": "string", + "format": "" + }, + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + } +]; +var EntityHeader = _EntityHeader; + // models/ErrorResponse.ts var _ErrorResponse = class _ErrorResponse { static getAttributeTypeMap() { @@ -3950,6 +4537,25 @@ _ErrorResponse.attributeTypeMap = [ ]; var ErrorResponse = _ErrorResponse; +// models/EurekaDataSourceSuggestionResponse.ts +var _EurekaDataSourceSuggestionResponse = class _EurekaDataSourceSuggestionResponse { + static getAttributeTypeMap() { + return _EurekaDataSourceSuggestionResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaDataSourceSuggestionResponse.discriminator = void 0; +_EurekaDataSourceSuggestionResponse.attributeTypeMap = [ + { + "name": "data_sources", + "baseName": "data_sources", + "type": "Array", + "format": "" + } +]; +var EurekaDataSourceSuggestionResponse = _EurekaDataSourceSuggestionResponse; + // models/EurekaDecomposeQueryResponse.ts var _EurekaDecomposeQueryResponse = class _EurekaDecomposeQueryResponse { static getAttributeTypeMap() { @@ -3969,6 +4575,44 @@ _EurekaDecomposeQueryResponse.attributeTypeMap = [ ]; var EurekaDecomposeQueryResponse = _EurekaDecomposeQueryResponse; +// models/EurekaGetNLInstructionsResponse.ts +var _EurekaGetNLInstructionsResponse = class _EurekaGetNLInstructionsResponse { + static getAttributeTypeMap() { + return _EurekaGetNLInstructionsResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaGetNLInstructionsResponse.discriminator = void 0; +_EurekaGetNLInstructionsResponse.attributeTypeMap = [ + { + "name": "nl_instructions_info", + "baseName": "nl_instructions_info", + "type": "Array", + "format": "" + } +]; +var EurekaGetNLInstructionsResponse = _EurekaGetNLInstructionsResponse; + +// models/EurekaGetRelevantQuestionsResponse.ts +var _EurekaGetRelevantQuestionsResponse = class _EurekaGetRelevantQuestionsResponse { + static getAttributeTypeMap() { + return _EurekaGetRelevantQuestionsResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaGetRelevantQuestionsResponse.discriminator = void 0; +_EurekaGetRelevantQuestionsResponse.attributeTypeMap = [ + { + "name": "relevant_questions", + "baseName": "relevant_questions", + "type": "Array", + "format": "" + } +]; +var EurekaGetRelevantQuestionsResponse = _EurekaGetRelevantQuestionsResponse; + // models/EurekaLLMDecomposeQueryResponse.ts var _EurekaLLMDecomposeQueryResponse = class _EurekaLLMDecomposeQueryResponse { static getAttributeTypeMap() { @@ -4019,6 +4663,106 @@ _EurekaLLMSuggestedQuery.attributeTypeMap = [ ]; var EurekaLLMSuggestedQuery = _EurekaLLMSuggestedQuery; +// models/EurekaRelevantQuestion.ts +var _EurekaRelevantQuestion = class _EurekaRelevantQuestion { + static getAttributeTypeMap() { + return _EurekaRelevantQuestion.attributeTypeMap; + } + constructor() { + } +}; +_EurekaRelevantQuestion.discriminator = void 0; +_EurekaRelevantQuestion.attributeTypeMap = [ + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + }, + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + }, + { + "name": "data_source_name", + "baseName": "data_source_name", + "type": "string", + "format": "" + } +]; +var EurekaRelevantQuestion = _EurekaRelevantQuestion; + +// models/EurekaSetNLInstructionsResponse.ts +var _EurekaSetNLInstructionsResponse = class _EurekaSetNLInstructionsResponse { + static getAttributeTypeMap() { + return _EurekaSetNLInstructionsResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaSetNLInstructionsResponse.discriminator = void 0; +_EurekaSetNLInstructionsResponse.attributeTypeMap = [ + { + "name": "success", + "baseName": "success", + "type": "boolean", + "format": "" + } +]; +var EurekaSetNLInstructionsResponse = _EurekaSetNLInstructionsResponse; + +// models/EventChannelConfig.ts +var _EventChannelConfig = class _EventChannelConfig { + static getAttributeTypeMap() { + return _EventChannelConfig.attributeTypeMap; + } + constructor() { + } +}; +_EventChannelConfig.discriminator = void 0; +_EventChannelConfig.attributeTypeMap = [ + { + "name": "event_type", + "baseName": "event_type", + "type": "EventChannelConfigEventTypeEnum", + "format": "" + }, + { + "name": "channels", + "baseName": "channels", + "type": "Array", + "format": "" + } +]; +var EventChannelConfig = _EventChannelConfig; + +// models/EventChannelConfigInput.ts +var _EventChannelConfigInput = class _EventChannelConfigInput { + static getAttributeTypeMap() { + return _EventChannelConfigInput.attributeTypeMap; + } + constructor() { + } +}; +_EventChannelConfigInput.discriminator = void 0; +_EventChannelConfigInput.attributeTypeMap = [ + { + "name": "event_type", + "baseName": "event_type", + "type": "EventChannelConfigInputEventTypeEnum", + "format": "" + }, + { + "name": "channels", + "baseName": "channels", + "type": "Array", + "format": "" + } +]; +var EventChannelConfigInput = _EventChannelConfigInput; + // models/ExcludeMetadataListItemInput.ts var _ExcludeMetadataListItemInput = class _ExcludeMetadataListItemInput { static getAttributeTypeMap() { @@ -4492,6 +5236,12 @@ _ExportMetadataTMLRequestExportOptions.attributeTypeMap = [ "baseName": "export_column_security_rules", "type": "boolean", "format": "" + }, + { + "name": "export_with_column_aliases", + "baseName": "export_with_column_aliases", + "type": "boolean", + "format": "" } ]; var ExportMetadataTMLRequestExportOptions = _ExportMetadataTMLRequestExportOptions; @@ -4572,6 +5322,12 @@ _ExportOptions.attributeTypeMap = [ "baseName": "export_column_security_rules", "type": "boolean", "format": "" + }, + { + "name": "export_with_column_aliases", + "baseName": "export_with_column_aliases", + "type": "boolean", + "format": "" } ]; var ExportOptions = _ExportOptions; @@ -5327,6 +6083,12 @@ _GetCustomAccessTokenRequest.attributeTypeMap = [ "type": "Array", "format": "" }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "Array", + "format": "" + }, { "name": "objects", "baseName": "objects", @@ -5360,6 +6122,25 @@ _GetCustomAccessTokenRequest.attributeTypeMap = [ ]; var GetCustomAccessTokenRequest = _GetCustomAccessTokenRequest; +// models/GetDataSourceSuggestionsRequest.ts +var _GetDataSourceSuggestionsRequest = class _GetDataSourceSuggestionsRequest { + static getAttributeTypeMap() { + return _GetDataSourceSuggestionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_GetDataSourceSuggestionsRequest.discriminator = void 0; +_GetDataSourceSuggestionsRequest.attributeTypeMap = [ + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + } +]; +var GetDataSourceSuggestionsRequest = _GetDataSourceSuggestionsRequest; + // models/GetFullAccessTokenRequest.ts var _GetFullAccessTokenRequest = class _GetFullAccessTokenRequest { static getAttributeTypeMap() { @@ -5470,6 +6251,25 @@ _GetFullAccessTokenRequestUserParameters.attributeTypeMap = [ ]; var GetFullAccessTokenRequestUserParameters = _GetFullAccessTokenRequestUserParameters; +// models/GetNLInstructionsRequest.ts +var _GetNLInstructionsRequest = class _GetNLInstructionsRequest { + static getAttributeTypeMap() { + return _GetNLInstructionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_GetNLInstructionsRequest.discriminator = void 0; +_GetNLInstructionsRequest.attributeTypeMap = [ + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + } +]; +var GetNLInstructionsRequest = _GetNLInstructionsRequest; + // models/GetObjectAccessTokenRequest.ts var _GetObjectAccessTokenRequest = class _GetObjectAccessTokenRequest { static getAttributeTypeMap() { @@ -5549,6 +6349,111 @@ _GetObjectAccessTokenRequest.attributeTypeMap = [ ]; var GetObjectAccessTokenRequest = _GetObjectAccessTokenRequest; +// models/GetRelevantQuestionsRequest.ts +var _GetRelevantQuestionsRequest = class _GetRelevantQuestionsRequest { + static getAttributeTypeMap() { + return _GetRelevantQuestionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_GetRelevantQuestionsRequest.discriminator = void 0; +_GetRelevantQuestionsRequest.attributeTypeMap = [ + { + "name": "metadata_context", + "baseName": "metadata_context", + "type": "GetRelevantQuestionsRequestMetadataContext", + "format": "" + }, + { + "name": "limit_relevant_questions", + "baseName": "limit_relevant_questions", + "type": "number", + "format": "int32" + }, + { + "name": "bypass_cache", + "baseName": "bypass_cache", + "type": "boolean", + "format": "" + }, + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + }, + { + "name": "ai_context", + "baseName": "ai_context", + "type": "GetRelevantQuestionsRequestAiContext", + "format": "" + } +]; +var GetRelevantQuestionsRequest = _GetRelevantQuestionsRequest; + +// models/GetRelevantQuestionsRequestAiContext.ts +var _GetRelevantQuestionsRequestAiContext = class _GetRelevantQuestionsRequestAiContext { + static getAttributeTypeMap() { + return _GetRelevantQuestionsRequestAiContext.attributeTypeMap; + } + constructor() { + } +}; +_GetRelevantQuestionsRequestAiContext.discriminator = void 0; +_GetRelevantQuestionsRequestAiContext.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "content", + "baseName": "content", + "type": "Array", + "format": "" + } +]; +var GetRelevantQuestionsRequestAiContext = _GetRelevantQuestionsRequestAiContext; + +// models/GetRelevantQuestionsRequestMetadataContext.ts +var _GetRelevantQuestionsRequestMetadataContext = class _GetRelevantQuestionsRequestMetadataContext { + static getAttributeTypeMap() { + return _GetRelevantQuestionsRequestMetadataContext.attributeTypeMap; + } + constructor() { + } +}; +_GetRelevantQuestionsRequestMetadataContext.discriminator = void 0; +_GetRelevantQuestionsRequestMetadataContext.attributeTypeMap = [ + { + "name": "data_source_identifiers", + "baseName": "data_source_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "answer_identifiers", + "baseName": "answer_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "liveboard_identifiers", + "baseName": "liveboard_identifiers", + "type": "Array", + "format": "" + } +]; +var GetRelevantQuestionsRequestMetadataContext = _GetRelevantQuestionsRequestMetadataContext; + // models/GetTokenResponse.ts var _GetTokenResponse = class _GetTokenResponse { static getAttributeTypeMap() { @@ -6230,49 +7135,6 @@ _InputEurekaNLSRequest.attributeTypeMap = [ ]; var InputEurekaNLSRequest = _InputEurekaNLSRequest; -// models/InputVariableValue.ts -var _InputVariableValue = class _InputVariableValue { - static getAttributeTypeMap() { - return _InputVariableValue.attributeTypeMap; - } - constructor() { - } -}; -_InputVariableValue.discriminator = void 0; -_InputVariableValue.attributeTypeMap = [ - { - "name": "value", - "baseName": "value", - "type": "string", - "format": "" - }, - { - "name": "org_identifier", - "baseName": "org_identifier", - "type": "string", - "format": "" - }, - { - "name": "principal_type", - "baseName": "principal_type", - "type": "InputVariableValuePrincipalTypeEnum", - "format": "" - }, - { - "name": "principal_identifier", - "baseName": "principal_identifier", - "type": "string", - "format": "" - }, - { - "name": "priority", - "baseName": "priority", - "type": "number", - "format": "int32" - } -]; -var InputVariableValue = _InputVariableValue; - // models/JWTMetadataObject.ts var _JWTMetadataObject = class _JWTMetadataObject { static getAttributeTypeMap() { @@ -6373,6 +7235,31 @@ _JWTUserOptionsFull.attributeTypeMap = [ ]; var JWTUserOptionsFull = _JWTUserOptionsFull; +// models/LBContextInput.ts +var _LBContextInput = class _LBContextInput { + static getAttributeTypeMap() { + return _LBContextInput.attributeTypeMap; + } + constructor() { + } +}; +_LBContextInput.discriminator = void 0; +_LBContextInput.attributeTypeMap = [ + { + "name": "liveboard_identifier", + "baseName": "liveboard_identifier", + "type": "string", + "format": "" + }, + { + "name": "visualization_identifier", + "baseName": "visualization_identifier", + "type": "string", + "format": "" + } +]; +var LBContextInput = _LBContextInput; + // models/LiveboardContent.ts var _LiveboardContent = class _LiveboardContent { static getAttributeTypeMap() { @@ -6602,6 +7489,43 @@ _MetadataAssociationItem.attributeTypeMap = [ ]; var MetadataAssociationItem = _MetadataAssociationItem; +// models/MetadataContext.ts +var _MetadataContext = class _MetadataContext { + static getAttributeTypeMap() { + return _MetadataContext.attributeTypeMap; + } + constructor() { + } +}; +_MetadataContext.discriminator = void 0; +_MetadataContext.attributeTypeMap = [ + { + "name": "data_source_identifiers", + "baseName": "data_source_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "answer_identifiers", + "baseName": "answer_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "liveboard_identifiers", + "baseName": "liveboard_identifiers", + "type": "Array", + "format": "" + } +]; +var MetadataContext = _MetadataContext; + // models/MetadataInput.ts var _MetadataInput = class _MetadataInput { static getAttributeTypeMap() { @@ -6855,6 +7779,56 @@ _ModelTableList.attributeTypeMap = [ ]; var ModelTableList = _ModelTableList; +// models/NLInstructionsInfo.ts +var _NLInstructionsInfo = class _NLInstructionsInfo { + static getAttributeTypeMap() { + return _NLInstructionsInfo.attributeTypeMap; + } + constructor() { + } +}; +_NLInstructionsInfo.discriminator = void 0; +_NLInstructionsInfo.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "scope", + "baseName": "scope", + "type": "NLInstructionsInfoScopeEnum", + "format": "" + } +]; +var NLInstructionsInfo = _NLInstructionsInfo; + +// models/NLInstructionsInfoInput.ts +var _NLInstructionsInfoInput = class _NLInstructionsInfoInput { + static getAttributeTypeMap() { + return _NLInstructionsInfoInput.attributeTypeMap; + } + constructor() { + } +}; +_NLInstructionsInfoInput.discriminator = void 0; +_NLInstructionsInfoInput.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "scope", + "baseName": "scope", + "type": "NLInstructionsInfoInputScopeEnum", + "format": "" + } +]; +var NLInstructionsInfoInput = _NLInstructionsInfoInput; + // models/ObjectIDAndName.ts var _ObjectIDAndName = class _ObjectIDAndName { static getAttributeTypeMap() { @@ -6905,6 +7879,93 @@ _Org.attributeTypeMap = [ ]; var Org = _Org; +// models/OrgChannelConfigInput.ts +var _OrgChannelConfigInput = class _OrgChannelConfigInput { + static getAttributeTypeMap() { + return _OrgChannelConfigInput.attributeTypeMap; + } + constructor() { + } +}; +_OrgChannelConfigInput.discriminator = void 0; +_OrgChannelConfigInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "operation", + "baseName": "operation", + "type": "OrgChannelConfigInputOperationEnum", + "format": "" + }, + { + "name": "preferences", + "baseName": "preferences", + "type": "Array", + "format": "" + }, + { + "name": "reset_events", + "baseName": "reset_events", + "type": "Array", + "format": "" + } +]; +var OrgChannelConfigInput = _OrgChannelConfigInput; + +// models/OrgChannelConfigResponse.ts +var _OrgChannelConfigResponse = class _OrgChannelConfigResponse { + static getAttributeTypeMap() { + return _OrgChannelConfigResponse.attributeTypeMap; + } + constructor() { + } +}; +_OrgChannelConfigResponse.discriminator = void 0; +_OrgChannelConfigResponse.attributeTypeMap = [ + { + "name": "org", + "baseName": "org", + "type": "OrgDetails", + "format": "" + }, + { + "name": "preferences", + "baseName": "preferences", + "type": "Array", + "format": "" + } +]; +var OrgChannelConfigResponse = _OrgChannelConfigResponse; + +// models/OrgDetails.ts +var _OrgDetails = class _OrgDetails { + static getAttributeTypeMap() { + return _OrgDetails.attributeTypeMap; + } + constructor() { + } +}; +_OrgDetails.discriminator = void 0; +_OrgDetails.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } +]; +var OrgDetails = _OrgDetails; + // models/OrgInfo.ts var _OrgInfo = class _OrgInfo { static getAttributeTypeMap() { @@ -6930,6 +7991,31 @@ _OrgInfo.attributeTypeMap = [ ]; var OrgInfo = _OrgInfo; +// models/OrgPreferenceSearchCriteriaInput.ts +var _OrgPreferenceSearchCriteriaInput = class _OrgPreferenceSearchCriteriaInput { + static getAttributeTypeMap() { + return _OrgPreferenceSearchCriteriaInput.attributeTypeMap; + } + constructor() { + } +}; +_OrgPreferenceSearchCriteriaInput.discriminator = void 0; +_OrgPreferenceSearchCriteriaInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "event_types", + "baseName": "event_types", + "type": "Array", + "format": "" + } +]; +var OrgPreferenceSearchCriteriaInput = _OrgPreferenceSearchCriteriaInput; + // models/OrgResponse.ts var _OrgResponse = class _OrgResponse { static getAttributeTypeMap() { @@ -9103,6 +10189,31 @@ _SearchCommitsRequest.attributeTypeMap = [ ]; var SearchCommitsRequest = _SearchCommitsRequest; +// models/SearchCommunicationChannelPreferencesRequest.ts +var _SearchCommunicationChannelPreferencesRequest = class _SearchCommunicationChannelPreferencesRequest { + static getAttributeTypeMap() { + return _SearchCommunicationChannelPreferencesRequest.attributeTypeMap; + } + constructor() { + } +}; +_SearchCommunicationChannelPreferencesRequest.discriminator = void 0; +_SearchCommunicationChannelPreferencesRequest.attributeTypeMap = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } +]; +var SearchCommunicationChannelPreferencesRequest = _SearchCommunicationChannelPreferencesRequest; + // models/SearchConfigRequest.ts var _SearchConfigRequest = class _SearchConfigRequest { static getAttributeTypeMap() { @@ -10330,6 +11441,12 @@ _SearchVariablesRequest.attributeTypeMap = [ "type": "Array", "format": "" }, + { + "name": "value_scope", + "baseName": "value_scope", + "type": "Array", + "format": "" + }, { "name": "record_offset", "baseName": "record_offset", @@ -10343,14 +11460,157 @@ _SearchVariablesRequest.attributeTypeMap = [ "format": "int32" }, { - "name": "output_format", - "baseName": "output_format", - "type": "SearchVariablesRequestOutputFormatEnum", + "name": "response_content", + "baseName": "response_content", + "type": "SearchVariablesRequestResponseContentEnum", "format": "" } ]; var SearchVariablesRequest = _SearchVariablesRequest; +// models/SearchWebhookConfigurationsRequest.ts +var _SearchWebhookConfigurationsRequest = class _SearchWebhookConfigurationsRequest { + static getAttributeTypeMap() { + return _SearchWebhookConfigurationsRequest.attributeTypeMap; + } + constructor() { + } +}; +_SearchWebhookConfigurationsRequest.discriminator = void 0; +_SearchWebhookConfigurationsRequest.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "webhook_identifier", + "baseName": "webhook_identifier", + "type": "string", + "format": "" + }, + { + "name": "event_type", + "baseName": "event_type", + "type": "SearchWebhookConfigurationsRequestEventTypeEnum", + "format": "" + }, + { + "name": "record_offset", + "baseName": "record_offset", + "type": "number", + "format": "int32" + }, + { + "name": "record_size", + "baseName": "record_size", + "type": "number", + "format": "int32" + }, + { + "name": "sort_options", + "baseName": "sort_options", + "type": "SearchWebhookConfigurationsRequestSortOptions", + "format": "" + } +]; +var SearchWebhookConfigurationsRequest = _SearchWebhookConfigurationsRequest; + +// models/SearchWebhookConfigurationsRequestSortOptions.ts +var _SearchWebhookConfigurationsRequestSortOptions = class _SearchWebhookConfigurationsRequestSortOptions { + static getAttributeTypeMap() { + return _SearchWebhookConfigurationsRequestSortOptions.attributeTypeMap; + } + constructor() { + } +}; +_SearchWebhookConfigurationsRequestSortOptions.discriminator = void 0; +_SearchWebhookConfigurationsRequestSortOptions.attributeTypeMap = [ + { + "name": "field_name", + "baseName": "field_name", + "type": "SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum", + "format": "" + }, + { + "name": "order", + "baseName": "order", + "type": "SearchWebhookConfigurationsRequestSortOptionsOrderEnum", + "format": "" + } +]; +var SearchWebhookConfigurationsRequestSortOptions = _SearchWebhookConfigurationsRequestSortOptions; + +// models/SendAgentMessageRequest.ts +var _SendAgentMessageRequest = class _SendAgentMessageRequest { + static getAttributeTypeMap() { + return _SendAgentMessageRequest.attributeTypeMap; + } + constructor() { + } +}; +_SendAgentMessageRequest.discriminator = void 0; +_SendAgentMessageRequest.attributeTypeMap = [ + { + "name": "messages", + "baseName": "messages", + "type": "Array", + "format": "" + } +]; +var SendAgentMessageRequest = _SendAgentMessageRequest; + +// models/SendAgentMessageResponse.ts +var _SendAgentMessageResponse = class _SendAgentMessageResponse { + static getAttributeTypeMap() { + return _SendAgentMessageResponse.attributeTypeMap; + } + constructor() { + } +}; +_SendAgentMessageResponse.discriminator = void 0; +_SendAgentMessageResponse.attributeTypeMap = [ + { + "name": "success", + "baseName": "success", + "type": "boolean", + "format": "" + }, + { + "name": "message", + "baseName": "message", + "type": "string", + "format": "" + } +]; +var SendAgentMessageResponse = _SendAgentMessageResponse; + +// models/SendAgentMessageStreamingRequest.ts +var _SendAgentMessageStreamingRequest = class _SendAgentMessageStreamingRequest { + static getAttributeTypeMap() { + return _SendAgentMessageStreamingRequest.attributeTypeMap; + } + constructor() { + } +}; +_SendAgentMessageStreamingRequest.discriminator = void 0; +_SendAgentMessageStreamingRequest.attributeTypeMap = [ + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "messages", + "baseName": "messages", + "type": "Array", + "format": "" + } +]; +var SendAgentMessageStreamingRequest = _SendAgentMessageStreamingRequest; + // models/SendMessageRequest.ts var _SendMessageRequest = class _SendMessageRequest { static getAttributeTypeMap() { @@ -10376,6 +11636,31 @@ _SendMessageRequest.attributeTypeMap = [ ]; var SendMessageRequest = _SendMessageRequest; +// models/SetNLInstructionsRequest.ts +var _SetNLInstructionsRequest = class _SetNLInstructionsRequest { + static getAttributeTypeMap() { + return _SetNLInstructionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_SetNLInstructionsRequest.discriminator = void 0; +_SetNLInstructionsRequest.attributeTypeMap = [ + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + }, + { + "name": "nl_instructions_info", + "baseName": "nl_instructions_info", + "type": "Array", + "format": "" + } +]; +var SetNLInstructionsRequest = _SetNLInstructionsRequest; + // models/ShareMetadataRequest.ts var _ShareMetadataRequest = class _ShareMetadataRequest { static getAttributeTypeMap() { @@ -11193,6 +12478,18 @@ _TemplatePropertiesInputCreate.attributeTypeMap = [ "baseName": "hide_modify_alert", "type": "boolean", "format": "" + }, + { + "name": "company_privacy_policy_url", + "baseName": "company_privacy_policy_url", + "type": "string", + "format": "" + }, + { + "name": "company_website_url", + "baseName": "company_website_url", + "type": "string", + "format": "" } ]; var TemplatePropertiesInputCreate = _TemplatePropertiesInputCreate; @@ -12589,18 +13886,6 @@ _UpdateVariableRequest.attributeTypeMap = [ "baseName": "name", "type": "string", "format": "" - }, - { - "name": "operation", - "baseName": "operation", - "type": "UpdateVariableRequestOperationEnum", - "format": "" - }, - { - "name": "values", - "baseName": "values", - "type": "Array", - "format": "" } ]; var UpdateVariableRequest = _UpdateVariableRequest; @@ -12616,20 +13901,75 @@ var _UpdateVariableValuesRequest = class _UpdateVariableValuesRequest { _UpdateVariableValuesRequest.discriminator = void 0; _UpdateVariableValuesRequest.attributeTypeMap = [ { - "name": "variable_updates", - "baseName": "variable_updates", - "type": "Array", + "name": "variable_assignment", + "baseName": "variable_assignment", + "type": "Array", "format": "" }, { - "name": "operation", - "baseName": "operation", - "type": "UpdateVariableValuesRequestOperationEnum", + "name": "variable_value_scope", + "baseName": "variable_value_scope", + "type": "Array", "format": "" } ]; var UpdateVariableValuesRequest = _UpdateVariableValuesRequest; +// models/UpdateWebhookConfigurationRequest.ts +var _UpdateWebhookConfigurationRequest = class _UpdateWebhookConfigurationRequest { + static getAttributeTypeMap() { + return _UpdateWebhookConfigurationRequest.attributeTypeMap; + } + constructor() { + } +}; +_UpdateWebhookConfigurationRequest.discriminator = void 0; +_UpdateWebhookConfigurationRequest.attributeTypeMap = [ + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "CreateWebhookConfigurationRequestAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "CreateWebhookConfigurationRequestSignatureVerification", + "format": "" + } +]; +var UpdateWebhookConfigurationRequest = _UpdateWebhookConfigurationRequest; + // models/User.ts var _User = class _User { static getAttributeTypeMap() { @@ -12909,6 +14249,12 @@ _User.attributeTypeMap = [ "baseName": "access_control_properties", "type": "any", "format": "" + }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "any", + "format": "" } ]; var User = _User; @@ -13293,6 +14639,43 @@ _ValidateTokenRequest.attributeTypeMap = [ ]; var ValidateTokenRequest = _ValidateTokenRequest; +// models/ValueScopeInput.ts +var _ValueScopeInput = class _ValueScopeInput { + static getAttributeTypeMap() { + return _ValueScopeInput.attributeTypeMap; + } + constructor() { + } +}; +_ValueScopeInput.discriminator = void 0; +_ValueScopeInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "principal_type", + "baseName": "principal_type", + "type": "ValueScopeInputPrincipalTypeEnum", + "format": "" + }, + { + "name": "principal_identifier", + "baseName": "principal_identifier", + "type": "string", + "format": "" + }, + { + "name": "model_identifier", + "baseName": "model_identifier", + "type": "string", + "format": "" + } +]; +var ValueScopeInput = _ValueScopeInput; + // models/Variable.ts var _Variable = class _Variable { static getAttributeTypeMap() { @@ -13367,6 +14750,80 @@ _VariableDetailInput.attributeTypeMap = [ ]; var VariableDetailInput = _VariableDetailInput; +// models/VariableUpdateAssignmentInput.ts +var _VariableUpdateAssignmentInput = class _VariableUpdateAssignmentInput { + static getAttributeTypeMap() { + return _VariableUpdateAssignmentInput.attributeTypeMap; + } + constructor() { + } +}; +_VariableUpdateAssignmentInput.discriminator = void 0; +_VariableUpdateAssignmentInput.attributeTypeMap = [ + { + "name": "variable_identifier", + "baseName": "variable_identifier", + "type": "string", + "format": "" + }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "Array", + "format": "" + }, + { + "name": "operation", + "baseName": "operation", + "type": "VariableUpdateAssignmentInputOperationEnum", + "format": "" + } +]; +var VariableUpdateAssignmentInput = _VariableUpdateAssignmentInput; + +// models/VariableUpdateScopeInput.ts +var _VariableUpdateScopeInput = class _VariableUpdateScopeInput { + static getAttributeTypeMap() { + return _VariableUpdateScopeInput.attributeTypeMap; + } + constructor() { + } +}; +_VariableUpdateScopeInput.discriminator = void 0; +_VariableUpdateScopeInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "principal_type", + "baseName": "principal_type", + "type": "VariableUpdateScopeInputPrincipalTypeEnum", + "format": "" + }, + { + "name": "principal_identifier", + "baseName": "principal_identifier", + "type": "string", + "format": "" + }, + { + "name": "model_identifier", + "baseName": "model_identifier", + "type": "string", + "format": "" + }, + { + "name": "priority", + "baseName": "priority", + "type": "number", + "format": "int32" + } +]; +var VariableUpdateScopeInput = _VariableUpdateScopeInput; + // models/VariableValue.ts var _VariableValue = class _VariableValue { static getAttributeTypeMap() { @@ -13383,6 +14840,12 @@ _VariableValue.attributeTypeMap = [ "type": "string", "format": "" }, + { + "name": "value_list", + "baseName": "value_list", + "type": "Array", + "format": "" + }, { "name": "org_identifier", "baseName": "org_identifier", @@ -13410,229 +14873,849 @@ _VariableValue.attributeTypeMap = [ ]; var VariableValue = _VariableValue; -// models/VariableValueInput.ts -var _VariableValueInput = class _VariableValueInput { +// models/VariableValues.ts +var _VariableValues = class _VariableValues { static getAttributeTypeMap() { - return _VariableValueInput.attributeTypeMap; + return _VariableValues.attributeTypeMap; } constructor() { } }; -_VariableValueInput.discriminator = void 0; -_VariableValueInput.attributeTypeMap = [ +_VariableValues.discriminator = void 0; +_VariableValues.attributeTypeMap = [ { - "name": "variable_identifier", - "baseName": "variable_identifier", + "name": "name", + "baseName": "name", "type": "string", "format": "" }, { - "name": "variable_values", - "baseName": "variable_values", - "type": "Array", + "name": "values", + "baseName": "values", + "type": "Array", "format": "" } ]; -var VariableValueInput = _VariableValueInput; +var VariableValues = _VariableValues; -// middleware.ts -var PromiseMiddlewareWrapper = class { - constructor(middleware) { - this.middleware = middleware; +// models/WebhookAuthApiKey.ts +var _WebhookAuthApiKey = class _WebhookAuthApiKey { + static getAttributeTypeMap() { + return _WebhookAuthApiKey.attributeTypeMap; } - pre(context) { - return from(this.middleware.pre(context)); + constructor() { } - post(context) { - return from(this.middleware.post(context)); +}; +_WebhookAuthApiKey.discriminator = void 0; +_WebhookAuthApiKey.attributeTypeMap = [ + { + "name": "key", + "baseName": "key", + "type": "string", + "format": "" + }, + { + "name": "value", + "baseName": "value", + "type": "string", + "format": "" + } +]; +var WebhookAuthApiKey = _WebhookAuthApiKey; + +// models/WebhookAuthApiKeyInput.ts +var _WebhookAuthApiKeyInput = class _WebhookAuthApiKeyInput { + static getAttributeTypeMap() { + return _WebhookAuthApiKeyInput.attributeTypeMap; + } + constructor() { } }; +_WebhookAuthApiKeyInput.discriminator = void 0; +_WebhookAuthApiKeyInput.attributeTypeMap = [ + { + "name": "key", + "baseName": "key", + "type": "string", + "format": "" + }, + { + "name": "value", + "baseName": "value", + "type": "string", + "format": "" + } +]; +var WebhookAuthApiKeyInput = _WebhookAuthApiKeyInput; -// servers.ts -var ServerConfiguration = class { - constructor(url, variableConfiguration) { - this.url = url; - this.variableConfiguration = variableConfiguration; +// models/WebhookAuthBasicAuth.ts +var _WebhookAuthBasicAuth = class _WebhookAuthBasicAuth { + static getAttributeTypeMap() { + return _WebhookAuthBasicAuth.attributeTypeMap; } - /** - * Sets the value of the variables of this server. Variables are included in - * the `url` of this ServerConfiguration in the form `{variableName}` - * - * @param variableConfiguration a partial variable configuration for the - * variables contained in the url - */ - setVariables(variableConfiguration) { - Object.assign(this.variableConfiguration, variableConfiguration); + constructor() { } - getConfiguration() { - return this.variableConfiguration; +}; +_WebhookAuthBasicAuth.discriminator = void 0; +_WebhookAuthBasicAuth.attributeTypeMap = [ + { + "name": "username", + "baseName": "username", + "type": "string", + "format": "" + }, + { + "name": "password", + "baseName": "password", + "type": "string", + "format": "" } - getUrl() { - let replacedUrl = this.url; - for (const key in this.variableConfiguration) { - var re = new RegExp("{" + key + "}", "g"); - replacedUrl = replacedUrl.replace(re, this.variableConfiguration[key]); - } - return replacedUrl; +]; +var WebhookAuthBasicAuth = _WebhookAuthBasicAuth; + +// models/WebhookAuthBasicAuthInput.ts +var _WebhookAuthBasicAuthInput = class _WebhookAuthBasicAuthInput { + static getAttributeTypeMap() { + return _WebhookAuthBasicAuthInput.attributeTypeMap; } - /** - * Creates a new request context for this server using the url with variables - * replaced with their respective values and the endpoint of the request appended. - * - * @param endpoint the endpoint to be queried on the server - * @param httpMethod httpMethod to be used - * - */ - makeRequestContext(endpoint, httpMethod) { - return new RequestContext2(this.getUrl() + endpoint, httpMethod); + constructor() { } }; -var server1 = new ServerConfiguration("{base-url}", { "base-url": "https://localhost:443" }); -var servers = [server1]; +_WebhookAuthBasicAuthInput.discriminator = void 0; +_WebhookAuthBasicAuthInput.attributeTypeMap = [ + { + "name": "username", + "baseName": "username", + "type": "string", + "format": "" + }, + { + "name": "password", + "baseName": "password", + "type": "string", + "format": "" + } +]; +var WebhookAuthBasicAuthInput = _WebhookAuthBasicAuthInput; -// configuration.ts -function createConfiguration(conf = {}) { - const configuration = { - baseServer: conf.baseServer !== void 0 ? conf.baseServer : server1, - httpApi: conf.httpApi || new IsomorphicFetchHttpLibrary(), - middleware: conf.middleware || [], - authMethods: configureAuthMethods(conf.authMethods) - }; - if (conf.promiseMiddleware) { - conf.promiseMiddleware.forEach( - (m) => configuration.middleware.push(new PromiseMiddlewareWrapper(m)) - ); +// models/WebhookAuthOAuth2.ts +var _WebhookAuthOAuth2 = class _WebhookAuthOAuth2 { + static getAttributeTypeMap() { + return _WebhookAuthOAuth2.attributeTypeMap; } - return configuration; -} + constructor() { + } +}; +_WebhookAuthOAuth2.discriminator = void 0; +_WebhookAuthOAuth2.attributeTypeMap = [ + { + "name": "authorization_url", + "baseName": "authorization_url", + "type": "string", + "format": "" + }, + { + "name": "client_id", + "baseName": "client_id", + "type": "string", + "format": "" + }, + { + "name": "client_secret", + "baseName": "client_secret", + "type": "string", + "format": "" + } +]; +var WebhookAuthOAuth2 = _WebhookAuthOAuth2; -// apis/exception.ts -var ApiException = class extends Error { - constructor(code, message, body, headers) { - super("HTTP-Code: " + code + "\nMessage: " + message + "\nBody: " + JSON.stringify(body) + "\nHeaders: " + JSON.stringify(headers)); - this.code = code; - this.body = body; - this.headers = headers; +// models/WebhookAuthOAuth2Input.ts +var _WebhookAuthOAuth2Input = class _WebhookAuthOAuth2Input { + static getAttributeTypeMap() { + return _WebhookAuthOAuth2Input.attributeTypeMap; + } + constructor() { } }; +_WebhookAuthOAuth2Input.discriminator = void 0; +_WebhookAuthOAuth2Input.attributeTypeMap = [ + { + "name": "authorization_url", + "baseName": "authorization_url", + "type": "string", + "format": "" + }, + { + "name": "client_id", + "baseName": "client_id", + "type": "string", + "format": "" + }, + { + "name": "client_secret", + "baseName": "client_secret", + "type": "string", + "format": "" + } +]; +var WebhookAuthOAuth2Input = _WebhookAuthOAuth2Input; -// apis/baseapi.ts -var BaseAPIRequestFactory = class { - constructor(configuration) { - this.configuration = configuration; +// models/WebhookAuthentication.ts +var _WebhookAuthentication = class _WebhookAuthentication { + static getAttributeTypeMap() { + return _WebhookAuthentication.attributeTypeMap; + } + constructor() { } }; -var RequiredError = class extends Error { - constructor(api, method, field) { - super("Required parameter " + field + " was null or undefined when calling " + api + "." + method + "."); - this.api = api; - this.method = method; - this.field = field; - this.name = "RequiredError"; +_WebhookAuthentication.discriminator = void 0; +_WebhookAuthentication.attributeTypeMap = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKey", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuth", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2", + "format": "" + } +]; +var WebhookAuthentication = _WebhookAuthentication; + +// models/WebhookAuthenticationInput.ts +var _WebhookAuthenticationInput = class _WebhookAuthenticationInput { + static getAttributeTypeMap() { + return _WebhookAuthenticationInput.attributeTypeMap; + } + constructor() { } }; +_WebhookAuthenticationInput.discriminator = void 0; +_WebhookAuthenticationInput.attributeTypeMap = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKeyInput", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuthInput", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2Input", + "format": "" + } +]; +var WebhookAuthenticationInput = _WebhookAuthenticationInput; -// models/ObjectSerializer.ts -var primitives = [ - "string", - "boolean", - "double", - "integer", - "long", - "float", - "number", - "any" +// models/WebhookDeleteFailure.ts +var _WebhookDeleteFailure = class _WebhookDeleteFailure { + static getAttributeTypeMap() { + return _WebhookDeleteFailure.attributeTypeMap; + } + constructor() { + } +}; +_WebhookDeleteFailure.discriminator = void 0; +_WebhookDeleteFailure.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "error", + "baseName": "error", + "type": "string", + "format": "" + } ]; -var supportedMediaTypes = { - "application/json": Infinity, - "application/octet-stream": 0, - "application/x-www-form-urlencoded": 0 +var WebhookDeleteFailure = _WebhookDeleteFailure; + +// models/WebhookDeleteResponse.ts +var _WebhookDeleteResponse = class _WebhookDeleteResponse { + static getAttributeTypeMap() { + return _WebhookDeleteResponse.attributeTypeMap; + } + constructor() { + } }; -var enumsMap = /* @__PURE__ */ new Set([ - "ActionConfigInputPositionEnum", - "ActionConfigInputCreatePositionEnum", - "AssociateMetadataInputTypeEnum", - "AssociateMetadataInputCreateTypeEnum", - "AuthorMetadataTypeInputTypeEnum", - "ColumnSecurityRuleGroupOperationOperationEnum", - "ConnectionConfigurationResponsePolicyProcessesEnum", - "ConnectionConfigurationResponseDataWarehouseTypeEnum", - "ConnectionConfigurationResponsePolicyTypeEnum", - "ConnectionConfigurationSearchRequestPolicyTypeEnum", - "CopyObjectRequestTypeEnum", - "CreateCalendarRequestCreationMethodEnum", - "CreateCalendarRequestCalendarTypeEnum", - "CreateCalendarRequestMonthOffsetEnum", - "CreateCalendarRequestStartDayOfWeekEnum", - "CreateConnectionConfigurationRequestAuthenticationTypeEnum", - "CreateConnectionConfigurationRequestPolicyTypeEnum", - "CreateConnectionConfigurationRequestPolicyProcessesEnum", - "CreateConnectionRequestDataWarehouseTypeEnum", - "CreateConnectionResponseDataWarehouseTypeEnum", - "CreateRoleRequestPrivilegesEnum", - "CreateScheduleRequestMetadataTypeEnum", - "CreateScheduleRequestFileFormatEnum", - "CreateScheduleRequestTimeZoneEnum", - "CreateScheduleRequestPdfOptionsPageSizeEnum", - "CreateUserGroupRequestPrivilegesEnum", - "CreateUserGroupRequestTypeEnum", - "CreateUserGroupRequestVisibilityEnum", - "CreateUserRequestAccountTypeEnum", - "CreateUserRequestAccountStatusEnum", - "CreateUserRequestVisibilityEnum", - "CreateUserRequestPreferredLocaleEnum", - "CreateVariableRequestTypeEnum", - "CustomActionMetadataTypeInputTypeEnum", - "DeleteMetadataTypeInputTypeEnum", - "DeployCommitRequestDeployTypeEnum", - "DeployCommitRequestDeployPolicyEnum", - "ExcludeMetadataListItemInputTypeEnum", - "ExportAnswerReportRequestFileFormatEnum", - "ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum", - "ExportAnswerReportRequestRegionalSettingsUserLocaleEnum", - "ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum", - "ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum", - "ExportLiveboardReportRequestFileFormatEnum", - "ExportLiveboardReportRequestPdfOptionsPageOrientationEnum", - "ExportMetadataTMLBatchedRequestMetadataTypeEnum", - "ExportMetadataTMLBatchedRequestEdocFormatEnum", - "ExportMetadataTMLRequestEdocFormatEnum", - "ExportMetadataTMLRequestExportSchemaVersionEnum", - "ExportMetadataTypeInputTypeEnum", - "FavoriteMetadataInputTypeEnum", - "FavoriteMetadataItemTypeEnum", - "FetchAnswerDataRequestDataFormatEnum", - "FetchAsyncImportTaskStatusRequestTaskStatusEnum", - "FetchLiveboardDataRequestDataFormatEnum", - "FetchLogsRequestLogTypeEnum", - "FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum", - "FilterRulesOperatorEnum", - "GenerateCSVRequestCalendarTypeEnum", - "GenerateCSVRequestMonthOffsetEnum", - "GenerateCSVRequestStartDayOfWeekEnum", - "GetCustomAccessTokenRequestPersistOptionEnum", - "GroupsImportListInputPrivilegesEnum", - "GroupsImportListInputTypeEnum", - "GroupsImportListInputVisibilityEnum", - "HeaderUpdateInputTypeEnum", - "ImportEPackAsyncTaskStatusTaskStatusEnum", - "ImportEPackAsyncTaskStatusImportPolicyEnum", - "ImportMetadataTMLAsyncRequestImportPolicyEnum", - "ImportMetadataTMLRequestImportPolicyEnum", - "ImportUserAccountTypeEnum", - "ImportUserAccountStatusEnum", - "ImportUserVisibilityEnum", - "InputVariableValuePrincipalTypeEnum", - "JWTMetadataObjectTypeEnum", - "MetadataInputTypeEnum", - "MetadataListItemInputTypeEnum", - "MetadataListItemInputSubtypesEnum", - "MetadataObjectTypeEnum", - "MetadataResponseTypeEnum", - "MetadataSearchResponseMetadataTypeEnum", - "MetadataSearchSortOptionsFieldNameEnum", - "MetadataSearchSortOptionsOrderEnum", - "OrgResponseStatusEnum", +_WebhookDeleteResponse.discriminator = void 0; +_WebhookDeleteResponse.attributeTypeMap = [ + { + "name": "deleted_count", + "baseName": "deleted_count", + "type": "number", + "format": "int32" + }, + { + "name": "failed_count", + "baseName": "failed_count", + "type": "number", + "format": "int32" + }, + { + "name": "deleted_webhooks", + "baseName": "deleted_webhooks", + "type": "Array", + "format": "" + }, + { + "name": "failed_webhooks", + "baseName": "failed_webhooks", + "type": "Array", + "format": "" + } +]; +var WebhookDeleteResponse = _WebhookDeleteResponse; + +// models/WebhookOrg.ts +var _WebhookOrg = class _WebhookOrg { + static getAttributeTypeMap() { + return _WebhookOrg.attributeTypeMap; + } + constructor() { + } +}; +_WebhookOrg.discriminator = void 0; +_WebhookOrg.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } +]; +var WebhookOrg = _WebhookOrg; + +// models/WebhookPagination.ts +var _WebhookPagination = class _WebhookPagination { + static getAttributeTypeMap() { + return _WebhookPagination.attributeTypeMap; + } + constructor() { + } +}; +_WebhookPagination.discriminator = void 0; +_WebhookPagination.attributeTypeMap = [ + { + "name": "record_offset", + "baseName": "record_offset", + "type": "number", + "format": "int32" + }, + { + "name": "record_size", + "baseName": "record_size", + "type": "number", + "format": "int32" + }, + { + "name": "total_count", + "baseName": "total_count", + "type": "number", + "format": "int32" + }, + { + "name": "has_more", + "baseName": "has_more", + "type": "boolean", + "format": "" + } +]; +var WebhookPagination = _WebhookPagination; + +// models/WebhookResponse.ts +var _WebhookResponse = class _WebhookResponse { + static getAttributeTypeMap() { + return _WebhookResponse.attributeTypeMap; + } + constructor() { + } +}; +_WebhookResponse.discriminator = void 0; +_WebhookResponse.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "org", + "baseName": "org", + "type": "WebhookOrg", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "WebhookAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "WebhookSignatureVerification", + "format": "" + }, + { + "name": "creation_time_in_millis", + "baseName": "creation_time_in_millis", + "type": "number", + "format": "float" + }, + { + "name": "modification_time_in_millis", + "baseName": "modification_time_in_millis", + "type": "number", + "format": "float" + }, + { + "name": "created_by", + "baseName": "created_by", + "type": "WebhookUser", + "format": "" + }, + { + "name": "last_modified_by", + "baseName": "last_modified_by", + "type": "WebhookUser", + "format": "" + } +]; +var WebhookResponse = _WebhookResponse; + +// models/WebhookSearchResponse.ts +var _WebhookSearchResponse = class _WebhookSearchResponse { + static getAttributeTypeMap() { + return _WebhookSearchResponse.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSearchResponse.discriminator = void 0; +_WebhookSearchResponse.attributeTypeMap = [ + { + "name": "webhooks", + "baseName": "webhooks", + "type": "Array", + "format": "" + }, + { + "name": "pagination", + "baseName": "pagination", + "type": "WebhookPagination", + "format": "" + } +]; +var WebhookSearchResponse = _WebhookSearchResponse; + +// models/WebhookSignatureVerification.ts +var _WebhookSignatureVerification = class _WebhookSignatureVerification { + static getAttributeTypeMap() { + return _WebhookSignatureVerification.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSignatureVerification.discriminator = void 0; +_WebhookSignatureVerification.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "WebhookSignatureVerificationTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "WebhookSignatureVerificationAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } +]; +var WebhookSignatureVerification = _WebhookSignatureVerification; + +// models/WebhookSignatureVerificationInput.ts +var _WebhookSignatureVerificationInput = class _WebhookSignatureVerificationInput { + static getAttributeTypeMap() { + return _WebhookSignatureVerificationInput.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSignatureVerificationInput.discriminator = void 0; +_WebhookSignatureVerificationInput.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "WebhookSignatureVerificationInputTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "WebhookSignatureVerificationInputAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } +]; +var WebhookSignatureVerificationInput = _WebhookSignatureVerificationInput; + +// models/WebhookSortOptionsInput.ts +var _WebhookSortOptionsInput = class _WebhookSortOptionsInput { + static getAttributeTypeMap() { + return _WebhookSortOptionsInput.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSortOptionsInput.discriminator = void 0; +_WebhookSortOptionsInput.attributeTypeMap = [ + { + "name": "field_name", + "baseName": "field_name", + "type": "WebhookSortOptionsInputFieldNameEnum", + "format": "" + }, + { + "name": "order", + "baseName": "order", + "type": "WebhookSortOptionsInputOrderEnum", + "format": "" + } +]; +var WebhookSortOptionsInput = _WebhookSortOptionsInput; + +// models/WebhookUser.ts +var _WebhookUser = class _WebhookUser { + static getAttributeTypeMap() { + return _WebhookUser.attributeTypeMap; + } + constructor() { + } +}; +_WebhookUser.discriminator = void 0; +_WebhookUser.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } +]; +var WebhookUser = _WebhookUser; + +// middleware.ts +var PromiseMiddlewareWrapper = class { + constructor(middleware) { + this.middleware = middleware; + } + pre(context) { + return from(this.middleware.pre(context)); + } + post(context) { + return from(this.middleware.post(context)); + } +}; + +// servers.ts +var ServerConfiguration = class { + constructor(url, variableConfiguration) { + this.url = url; + this.variableConfiguration = variableConfiguration; + } + /** + * Sets the value of the variables of this server. Variables are included in + * the `url` of this ServerConfiguration in the form `{variableName}` + * + * @param variableConfiguration a partial variable configuration for the + * variables contained in the url + */ + setVariables(variableConfiguration) { + Object.assign(this.variableConfiguration, variableConfiguration); + } + getConfiguration() { + return this.variableConfiguration; + } + getUrl() { + let replacedUrl = this.url; + for (const key in this.variableConfiguration) { + var re = new RegExp("{" + key + "}", "g"); + replacedUrl = replacedUrl.replace(re, this.variableConfiguration[key]); + } + return replacedUrl; + } + /** + * Creates a new request context for this server using the url with variables + * replaced with their respective values and the endpoint of the request appended. + * + * @param endpoint the endpoint to be queried on the server + * @param httpMethod httpMethod to be used + * + */ + makeRequestContext(endpoint, httpMethod) { + return new RequestContext2(this.getUrl() + endpoint, httpMethod); + } +}; +var server1 = new ServerConfiguration("{base-url}", { "base-url": "https://localhost:443" }); +var servers = [server1]; + +// configuration.ts +function createConfiguration(conf = {}) { + const configuration = { + baseServer: conf.baseServer !== void 0 ? conf.baseServer : server1, + httpApi: conf.httpApi || new IsomorphicFetchHttpLibrary(), + middleware: conf.middleware || [], + authMethods: configureAuthMethods(conf.authMethods) + }; + if (conf.promiseMiddleware) { + conf.promiseMiddleware.forEach( + (m) => configuration.middleware.push(new PromiseMiddlewareWrapper(m)) + ); + } + return configuration; +} + +// apis/exception.ts +var ApiException = class extends Error { + constructor(code, message, body, headers) { + super("HTTP-Code: " + code + "\nMessage: " + message + "\nBody: " + JSON.stringify(body) + "\nHeaders: " + JSON.stringify(headers)); + this.code = code; + this.body = body; + this.headers = headers; + } +}; + +// apis/baseapi.ts +var BaseAPIRequestFactory = class { + constructor(configuration) { + this.configuration = configuration; + } +}; +var RequiredError = class extends Error { + constructor(api, method, field) { + super("Required parameter " + field + " was null or undefined when calling " + api + "." + method + "."); + this.api = api; + this.method = method; + this.field = field; + this.name = "RequiredError"; + } +}; + +// models/ObjectSerializer.ts +var primitives = [ + "string", + "boolean", + "double", + "integer", + "long", + "float", + "number", + "any" +]; +var supportedMediaTypes = { + "application/json": Infinity, + "application/octet-stream": 0, + "application/x-www-form-urlencoded": 0 +}; +var enumsMap = /* @__PURE__ */ new Set([ + "ActionConfigInputPositionEnum", + "ActionConfigInputCreatePositionEnum", + "AssociateMetadataInputTypeEnum", + "AssociateMetadataInputCreateTypeEnum", + "AuthorMetadataTypeInputTypeEnum", + "ColumnSecurityRuleGroupOperationOperationEnum", + "ConnectionConfigurationResponsePolicyProcessesEnum", + "ConnectionConfigurationResponseDataWarehouseTypeEnum", + "ConnectionConfigurationResponsePolicyTypeEnum", + "ConnectionConfigurationSearchRequestPolicyTypeEnum", + "ContextPayloadV2InputTypeEnum", + "CopyObjectRequestTypeEnum", + "CreateAgentConversationRequestMetadataContextTypeEnum", + "CreateCalendarRequestCreationMethodEnum", + "CreateCalendarRequestCalendarTypeEnum", + "CreateCalendarRequestMonthOffsetEnum", + "CreateCalendarRequestStartDayOfWeekEnum", + "CreateConnectionConfigurationRequestAuthenticationTypeEnum", + "CreateConnectionConfigurationRequestPolicyTypeEnum", + "CreateConnectionConfigurationRequestPolicyProcessesEnum", + "CreateConnectionRequestDataWarehouseTypeEnum", + "CreateConnectionResponseDataWarehouseTypeEnum", + "CreateRoleRequestPrivilegesEnum", + "CreateScheduleRequestMetadataTypeEnum", + "CreateScheduleRequestFileFormatEnum", + "CreateScheduleRequestTimeZoneEnum", + "CreateScheduleRequestPdfOptionsPageSizeEnum", + "CreateUserGroupRequestPrivilegesEnum", + "CreateUserGroupRequestTypeEnum", + "CreateUserGroupRequestVisibilityEnum", + "CreateUserRequestAccountTypeEnum", + "CreateUserRequestAccountStatusEnum", + "CreateUserRequestVisibilityEnum", + "CreateUserRequestPreferredLocaleEnum", + "CreateVariableRequestTypeEnum", + "CreateVariableRequestDataTypeEnum", + "CreateWebhookConfigurationRequestEventsEnum", + "CreateWebhookConfigurationRequestSignatureVerificationTypeEnum", + "CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum", + "CustomActionMetadataTypeInputTypeEnum", + "DeleteMetadataTypeInputTypeEnum", + "DeployCommitRequestDeployTypeEnum", + "DeployCommitRequestDeployPolicyEnum", + "EventChannelConfigEventTypeEnum", + "EventChannelConfigChannelsEnum", + "EventChannelConfigInputEventTypeEnum", + "EventChannelConfigInputChannelsEnum", + "ExcludeMetadataListItemInputTypeEnum", + "ExportAnswerReportRequestFileFormatEnum", + "ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum", + "ExportAnswerReportRequestRegionalSettingsUserLocaleEnum", + "ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum", + "ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum", + "ExportLiveboardReportRequestFileFormatEnum", + "ExportLiveboardReportRequestPdfOptionsPageOrientationEnum", + "ExportMetadataTMLBatchedRequestMetadataTypeEnum", + "ExportMetadataTMLBatchedRequestEdocFormatEnum", + "ExportMetadataTMLRequestEdocFormatEnum", + "ExportMetadataTMLRequestExportSchemaVersionEnum", + "ExportMetadataTypeInputTypeEnum", + "FavoriteMetadataInputTypeEnum", + "FavoriteMetadataItemTypeEnum", + "FetchAnswerDataRequestDataFormatEnum", + "FetchAsyncImportTaskStatusRequestTaskStatusEnum", + "FetchLiveboardDataRequestDataFormatEnum", + "FetchLogsRequestLogTypeEnum", + "FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum", + "FilterRulesOperatorEnum", + "GenerateCSVRequestCalendarTypeEnum", + "GenerateCSVRequestMonthOffsetEnum", + "GenerateCSVRequestStartDayOfWeekEnum", + "GetCustomAccessTokenRequestPersistOptionEnum", + "GroupsImportListInputPrivilegesEnum", + "GroupsImportListInputTypeEnum", + "GroupsImportListInputVisibilityEnum", + "HeaderUpdateInputTypeEnum", + "ImportEPackAsyncTaskStatusTaskStatusEnum", + "ImportEPackAsyncTaskStatusImportPolicyEnum", + "ImportMetadataTMLAsyncRequestImportPolicyEnum", + "ImportMetadataTMLRequestImportPolicyEnum", + "ImportUserAccountTypeEnum", + "ImportUserAccountStatusEnum", + "ImportUserVisibilityEnum", + "JWTMetadataObjectTypeEnum", + "MetadataInputTypeEnum", + "MetadataListItemInputTypeEnum", + "MetadataListItemInputSubtypesEnum", + "MetadataObjectTypeEnum", + "MetadataResponseTypeEnum", + "MetadataSearchResponseMetadataTypeEnum", + "MetadataSearchSortOptionsFieldNameEnum", + "MetadataSearchSortOptionsOrderEnum", + "NLInstructionsInfoScopeEnum", + "NLInstructionsInfoInputScopeEnum", + "OrgChannelConfigInputOperationEnum", + "OrgChannelConfigInputResetEventsEnum", + "OrgPreferenceSearchCriteriaInputEventTypesEnum", + "OrgResponseStatusEnum", "OrgResponseVisibilityEnum", "ParameterizeMetadataRequestMetadataTypeEnum", "ParameterizeMetadataRequestFieldTypeEnum", @@ -13657,6 +15740,7 @@ var enumsMap = /* @__PURE__ */ new Set([ "SearchCalendarsRequestSortOptionsFieldNameEnum", "SearchCalendarsRequestSortOptionsOrderEnum", "SearchCommitsRequestMetadataTypeEnum", + "SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum", "SearchConnectionRequestDataWarehouseTypesEnum", "SearchConnectionRequestDataWarehouseObjectTypeEnum", "SearchConnectionRequestAuthenticationTypeEnum", @@ -13686,7 +15770,10 @@ var enumsMap = /* @__PURE__ */ new Set([ "SearchUsersRequestAccountStatusEnum", "SearchUsersRequestSortOptionsFieldNameEnum", "SearchUsersRequestSortOptionsOrderEnum", - "SearchVariablesRequestOutputFormatEnum", + "SearchVariablesRequestResponseContentEnum", + "SearchWebhookConfigurationsRequestEventTypeEnum", + "SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum", + "SearchWebhookConfigurationsRequestSortOptionsOrderEnum", "ShareMetadataRequestMetadataTypeEnum", "ShareMetadataTypeInputTypeEnum", "SharePermissionsInputShareModeEnum", @@ -13726,8 +15813,7 @@ var enumsMap = /* @__PURE__ */ new Set([ "UpdateUserRequestAccountTypeEnum", "UpdateUserRequestOperationEnum", "UpdateUserRequestPreferredLocaleEnum", - "UpdateVariableRequestOperationEnum", - "UpdateVariableValuesRequestOperationEnum", + "UpdateWebhookConfigurationRequestEventsEnum", "UserVisibilityEnum", "UserAccountTypeEnum", "UserAccountStatusEnum", @@ -13736,11 +15822,22 @@ var enumsMap = /* @__PURE__ */ new Set([ "UserGroupResponseTypeEnum", "UserGroupResponseVisibilityEnum", "UserObjectTypeEnum", + "ValueScopeInputPrincipalTypeEnum", "VariableVariableTypeEnum", "VariableDetailInputTypeEnum", - "VariableValuePrincipalTypeEnum" + "VariableUpdateAssignmentInputOperationEnum", + "VariableUpdateScopeInputPrincipalTypeEnum", + "VariableValuePrincipalTypeEnum", + "WebhookResponseEventsEnum", + "WebhookSignatureVerificationTypeEnum", + "WebhookSignatureVerificationAlgorithmEnum", + "WebhookSignatureVerificationInputTypeEnum", + "WebhookSignatureVerificationInputAlgorithmEnum", + "WebhookSortOptionsInputFieldNameEnum", + "WebhookSortOptionsInputOrderEnum" ]); var typeMap = { + "AIContext": AIContext, "APIKey": APIKey, "APIKeyInput": APIKeyInput, "AccessToken": AccessToken, @@ -13751,7 +15848,9 @@ var typeMap = { "ActionDetailsInput": ActionDetailsInput, "ActionDetailsInputCreate": ActionDetailsInputCreate, "ActivateUserRequest": ActivateUserRequest, + "AgentConversation": AgentConversation, "AnswerContent": AnswerContent, + "AnswerContextInput": AnswerContextInput, "AnswerDataResponse": AnswerDataResponse, "AssignChangeAuthorRequest": AssignChangeAuthorRequest, "AssignTagRequest": AssignTagRequest, @@ -13783,12 +15882,19 @@ var typeMap = { "CommitHistoryResponse": CommitHistoryResponse, "CommitResponse": CommitResponse, "CommiterType": CommiterType, + "CommunicationChannelPreferencesResponse": CommunicationChannelPreferencesResponse, + "ConfigureCommunicationChannelPreferencesRequest": ConfigureCommunicationChannelPreferencesRequest, "ConnectionConfigurationResponse": ConnectionConfigurationResponse, "ConnectionConfigurationSearchRequest": ConnectionConfigurationSearchRequest, "ConnectionInput": ConnectionInput, + "ContextPayloadV2Input": ContextPayloadV2Input, "Conversation": Conversation, + "ConversationSettingsInput": ConversationSettingsInput, "ConvertWorksheetToModelRequest": ConvertWorksheetToModelRequest, "CopyObjectRequest": CopyObjectRequest, + "CreateAgentConversationRequest": CreateAgentConversationRequest, + "CreateAgentConversationRequestConversationSettings": CreateAgentConversationRequestConversationSettings, + "CreateAgentConversationRequestMetadataContext": CreateAgentConversationRequestMetadataContext, "CreateCalendarRequest": CreateCalendarRequest, "CreateCalendarRequestTableReference": CreateCalendarRequestTableReference, "CreateConfigRequest": CreateConfigRequest, @@ -13813,9 +15919,14 @@ var typeMap = { "CreateUserGroupRequest": CreateUserGroupRequest, "CreateUserRequest": CreateUserRequest, "CreateVariableRequest": CreateVariableRequest, + "CreateWebhookConfigurationRequest": CreateWebhookConfigurationRequest, + "CreateWebhookConfigurationRequestAuthentication": CreateWebhookConfigurationRequestAuthentication, + "CreateWebhookConfigurationRequestSignatureVerification": CreateWebhookConfigurationRequestSignatureVerification, "CronExpression": CronExpression, "CronExpressionInput": CronExpressionInput, "CustomActionMetadataTypeInput": CustomActionMetadataTypeInput, + "DataSource": DataSource, + "DataSourceContextInput": DataSourceContextInput, "DataWarehouseObjectInput": DataWarehouseObjectInput, "DataWarehouseObjects": DataWarehouseObjects, "Database": Database, @@ -13831,12 +15942,21 @@ var typeMap = { "DeleteMetadataRequest": DeleteMetadataRequest, "DeleteMetadataTypeInput": DeleteMetadataTypeInput, "DeleteOrgEmailCustomizationRequest": DeleteOrgEmailCustomizationRequest, + "DeleteWebhookConfigurationsRequest": DeleteWebhookConfigurationsRequest, "DeployCommitRequest": DeployCommitRequest, "DeployResponse": DeployResponse, + "EntityHeader": EntityHeader, "ErrorResponse": ErrorResponse, + "EurekaDataSourceSuggestionResponse": EurekaDataSourceSuggestionResponse, "EurekaDecomposeQueryResponse": EurekaDecomposeQueryResponse, + "EurekaGetNLInstructionsResponse": EurekaGetNLInstructionsResponse, + "EurekaGetRelevantQuestionsResponse": EurekaGetRelevantQuestionsResponse, "EurekaLLMDecomposeQueryResponse": EurekaLLMDecomposeQueryResponse, "EurekaLLMSuggestedQuery": EurekaLLMSuggestedQuery, + "EurekaRelevantQuestion": EurekaRelevantQuestion, + "EurekaSetNLInstructionsResponse": EurekaSetNLInstructionsResponse, + "EventChannelConfig": EventChannelConfig, + "EventChannelConfigInput": EventChannelConfigInput, "ExcludeMetadataListItemInput": ExcludeMetadataListItemInput, "ExportAnswerReportRequest": ExportAnswerReportRequest, "ExportAnswerReportRequestRegionalSettings": ExportAnswerReportRequestRegionalSettings, @@ -13870,9 +15990,14 @@ var typeMap = { "GenericInfo": GenericInfo, "GetAsyncImportStatusResponse": GetAsyncImportStatusResponse, "GetCustomAccessTokenRequest": GetCustomAccessTokenRequest, + "GetDataSourceSuggestionsRequest": GetDataSourceSuggestionsRequest, "GetFullAccessTokenRequest": GetFullAccessTokenRequest, "GetFullAccessTokenRequestUserParameters": GetFullAccessTokenRequestUserParameters, + "GetNLInstructionsRequest": GetNLInstructionsRequest, "GetObjectAccessTokenRequest": GetObjectAccessTokenRequest, + "GetRelevantQuestionsRequest": GetRelevantQuestionsRequest, + "GetRelevantQuestionsRequestAiContext": GetRelevantQuestionsRequestAiContext, + "GetRelevantQuestionsRequestMetadataContext": GetRelevantQuestionsRequestMetadataContext, "GetTokenResponse": GetTokenResponse, "GroupObject": GroupObject, "GroupsImportListInput": GroupsImportListInput, @@ -13888,11 +16013,11 @@ var typeMap = { "ImportUsersRequest": ImportUsersRequest, "ImportUsersResponse": ImportUsersResponse, "InputEurekaNLSRequest": InputEurekaNLSRequest, - "InputVariableValue": InputVariableValue, "JWTMetadataObject": JWTMetadataObject, "JWTParameter": JWTParameter, "JWTUserOptions": JWTUserOptions, "JWTUserOptionsFull": JWTUserOptionsFull, + "LBContextInput": LBContextInput, "LiveboardContent": LiveboardContent, "LiveboardDataResponse": LiveboardDataResponse, "LiveboardOptions": LiveboardOptions, @@ -13900,6 +16025,7 @@ var typeMap = { "LogResponse": LogResponse, "LoginRequest": LoginRequest, "MetadataAssociationItem": MetadataAssociationItem, + "MetadataContext": MetadataContext, "MetadataInput": MetadataInput, "MetadataListItemInput": MetadataListItemInput, "MetadataObject": MetadataObject, @@ -13907,9 +16033,15 @@ var typeMap = { "MetadataSearchResponse": MetadataSearchResponse, "MetadataSearchSortOptions": MetadataSearchSortOptions, "ModelTableList": ModelTableList, + "NLInstructionsInfo": NLInstructionsInfo, + "NLInstructionsInfoInput": NLInstructionsInfoInput, "ObjectIDAndName": ObjectIDAndName, "Org": Org, + "OrgChannelConfigInput": OrgChannelConfigInput, + "OrgChannelConfigResponse": OrgChannelConfigResponse, + "OrgDetails": OrgDetails, "OrgInfo": OrgInfo, + "OrgPreferenceSearchCriteriaInput": OrgPreferenceSearchCriteriaInput, "OrgResponse": OrgResponse, "OrgType": OrgType, "ParameterValues": ParameterValues, @@ -13971,6 +16103,7 @@ var typeMap = { "SearchCalendarsRequest": SearchCalendarsRequest, "SearchCalendarsRequestSortOptions": SearchCalendarsRequestSortOptions, "SearchCommitsRequest": SearchCommitsRequest, + "SearchCommunicationChannelPreferencesRequest": SearchCommunicationChannelPreferencesRequest, "SearchConfigRequest": SearchConfigRequest, "SearchConnectionRequest": SearchConnectionRequest, "SearchConnectionRequestSortOptions": SearchConnectionRequestSortOptions, @@ -13995,7 +16128,13 @@ var typeMap = { "SearchUsersRequest": SearchUsersRequest, "SearchUsersRequestSortOptions": SearchUsersRequestSortOptions, "SearchVariablesRequest": SearchVariablesRequest, + "SearchWebhookConfigurationsRequest": SearchWebhookConfigurationsRequest, + "SearchWebhookConfigurationsRequestSortOptions": SearchWebhookConfigurationsRequestSortOptions, + "SendAgentMessageRequest": SendAgentMessageRequest, + "SendAgentMessageResponse": SendAgentMessageResponse, + "SendAgentMessageStreamingRequest": SendAgentMessageStreamingRequest, "SendMessageRequest": SendMessageRequest, + "SetNLInstructionsRequest": SetNLInstructionsRequest, "ShareMetadataRequest": ShareMetadataRequest, "ShareMetadataTypeInput": ShareMetadataTypeInput, "SharePermissionsInput": SharePermissionsInput, @@ -14048,6 +16187,7 @@ var typeMap = { "UpdateUserRequest": UpdateUserRequest, "UpdateVariableRequest": UpdateVariableRequest, "UpdateVariableValuesRequest": UpdateVariableValuesRequest, + "UpdateWebhookConfigurationRequest": UpdateWebhookConfigurationRequest, "User": User, "UserGroup": UserGroup, "UserGroupResponse": UserGroupResponse, @@ -14057,10 +16197,31 @@ var typeMap = { "UserPrincipal": UserPrincipal, "ValidateMergeRequest": ValidateMergeRequest, "ValidateTokenRequest": ValidateTokenRequest, + "ValueScopeInput": ValueScopeInput, "Variable": Variable, "VariableDetailInput": VariableDetailInput, + "VariableUpdateAssignmentInput": VariableUpdateAssignmentInput, + "VariableUpdateScopeInput": VariableUpdateScopeInput, "VariableValue": VariableValue, - "VariableValueInput": VariableValueInput + "VariableValues": VariableValues, + "WebhookAuthApiKey": WebhookAuthApiKey, + "WebhookAuthApiKeyInput": WebhookAuthApiKeyInput, + "WebhookAuthBasicAuth": WebhookAuthBasicAuth, + "WebhookAuthBasicAuthInput": WebhookAuthBasicAuthInput, + "WebhookAuthOAuth2": WebhookAuthOAuth2, + "WebhookAuthOAuth2Input": WebhookAuthOAuth2Input, + "WebhookAuthentication": WebhookAuthentication, + "WebhookAuthenticationInput": WebhookAuthenticationInput, + "WebhookDeleteFailure": WebhookDeleteFailure, + "WebhookDeleteResponse": WebhookDeleteResponse, + "WebhookOrg": WebhookOrg, + "WebhookPagination": WebhookPagination, + "WebhookResponse": WebhookResponse, + "WebhookSearchResponse": WebhookSearchResponse, + "WebhookSignatureVerification": WebhookSignatureVerification, + "WebhookSignatureVerificationInput": WebhookSignatureVerificationInput, + "WebhookSortOptionsInput": WebhookSortOptionsInput, + "WebhookUser": WebhookUser }; var ObjectSerializer = class _ObjectSerializer { static findCorrectType(data, expectedType) { @@ -14261,6 +16422,43 @@ function canConsumeForm(contentTypes) { // apis/AIApi.ts var AIApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createAgentConversationRequest === null || createAgentConversationRequest === void 0) { + throw new RequiredError("AIApi", "createAgentConversation", "createAgentConversationRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/conversation/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createAgentConversationRequest, "CreateAgentConversationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } /** * 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 @@ -14275,7 +16473,8 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/ai/conversation/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -14298,26 +16497,27 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.7.0.cl or later - * @param queryGetDecomposedQueryRequest + * 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 */ - queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { - throw new RequiredError("AIApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); + if (getDataSourceSuggestionsRequest === null || getDataSourceSuggestionsRequest === void 0) { + throw new RequiredError("AIApi", "getDataSourceSuggestions", "getDataSourceSuggestionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/analytical-questions"; + const localVarPath = "/api/rest/2.0/ai/data-source-suggestions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), + ObjectSerializer.serialize(getDataSourceSuggestionsRequest, "GetDataSourceSuggestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14334,30 +16534,27 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest */ - sendMessage(conversationIdentifier, sendMessageRequest, _options) { + getNLInstructions(getNLInstructionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (conversationIdentifier === null || conversationIdentifier === void 0) { - throw new RequiredError("AIApi", "sendMessage", "conversationIdentifier"); + if (getNLInstructionsRequest === null || getNLInstructionsRequest === void 0) { + throw new RequiredError("AIApi", "getNLInstructions", "getNLInstructionsRequest"); } - if (sendMessageRequest === null || sendMessageRequest === void 0) { - throw new RequiredError("AIApi", "sendMessage", "sendMessageRequest"); - } - const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const localVarPath = "/api/rest/2.0/ai/instructions/get"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + ObjectSerializer.serialize(getNLInstructionsRequest, "GetNLInstructionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14374,26 +16571,27 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * 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 */ - singleAnswer(singleAnswerRequest, _options) { + getRelevantQuestions(getRelevantQuestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (singleAnswerRequest === null || singleAnswerRequest === void 0) { - throw new RequiredError("AIApi", "singleAnswer", "singleAnswerRequest"); + if (getRelevantQuestionsRequest === null || getRelevantQuestionsRequest === void 0) { + throw new RequiredError("AIApi", "getRelevantQuestions", "getRelevantQuestionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/answer/create"; + const localVarPath = "/api/rest/2.0/ai/relevant-questions/"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + ObjectSerializer.serialize(getRelevantQuestionsRequest, "GetRelevantQuestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14409,294 +16607,36 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var AIApiResponseProcessor = class { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConversation - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.7.0.cl or later + * @param queryGetDecomposedQueryRequest */ - createConversation(response) { + queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { + throw new RequiredError("AIApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to queryGetDecomposedQuery - * @throws ApiException if the response code was not in [200, 299] - */ - queryGetDecomposedQuery(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to sendMessage - * @throws ApiException if the response code was not in [200, 299] - */ - sendMessage(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to singleAnswer - * @throws ApiException if the response code was not in [200, 299] - */ - singleAnswer(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseMessage", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseMessage", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseMessage", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } -}; - -// apis/AuthenticationApi.ts -var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { - /** - * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. - */ - getCurrentUserInfo(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/user"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request - */ - getCurrentUserToken(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/token"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * 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. - * @param getCustomAccessTokenRequest - */ - getCustomAccessToken(getCustomAccessTokenRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); - } - const localVarPath = "/api/rest/2.0/auth/token/custom"; + const localVarPath = "/api/rest/2.0/ai/analytical-questions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), + ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -14705,29 +16645,39 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getFullAccessTokenRequest + * 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) + * @param sendAgentMessageRequest */ - getFullAccessToken(getFullAccessTokenRequest, _options) { + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "getFullAccessToken", "getFullAccessTokenRequest"); + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("AIApi", "sendAgentMessage", "conversationIdentifier"); } - const localVarPath = "/api/rest/2.0/auth/token/full"; + if (sendAgentMessageRequest === null || sendAgentMessageRequest === void 0) { + throw new RequiredError("AIApi", "sendAgentMessage", "sendAgentMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), + ObjectSerializer.serialize(sendAgentMessageRequest, "SendAgentMessageRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -14736,29 +16686,35 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getObjectAccessTokenRequest + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest */ - getObjectAccessToken(getObjectAccessTokenRequest, _options) { + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); + if (sendAgentMessageStreamingRequest === null || sendAgentMessageStreamingRequest === void 0) { + throw new RequiredError("AIApi", "sendAgentMessageStreaming", "sendAgentMessageStreamingRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/object"; + const localVarPath = "/api/rest/2.0/ai/agent/converse/sse"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + ObjectSerializer.serialize(sendAgentMessageStreamingRequest, "SendAgentMessageStreamingRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -14767,26 +16723,31 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. - * @param loginRequest + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest */ - login(loginRequest, _options) { + sendMessage(conversationIdentifier, sendMessageRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (loginRequest === null || loginRequest === void 0) { - throw new RequiredError("AuthenticationApi", "login", "loginRequest"); + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("AIApi", "sendMessage", "conversationIdentifier"); } - const localVarPath = "/api/rest/2.0/auth/session/login"; + if (sendMessageRequest === null || sendMessageRequest === void 0) { + throw new RequiredError("AIApi", "sendMessage", "sendMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), + ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14803,49 +16764,27 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Logs out a user from their current session. - */ - logout(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/logout"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). - * @param revokeTokenRequest + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest */ - revokeToken(revokeTokenRequest, _options) { + setNLInstructions(setNLInstructionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (revokeTokenRequest === null || revokeTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "revokeToken", "revokeTokenRequest"); + if (setNLInstructionsRequest === null || setNLInstructionsRequest === void 0) { + throw new RequiredError("AIApi", "setNLInstructions", "setNLInstructionsRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/revoke"; + const localVarPath = "/api/rest/2.0/ai/instructions/set"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), + ObjectSerializer.serialize(setNLInstructionsRequest, "SetNLInstructionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14862,26 +16801,27 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). - * @param validateTokenRequest + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest */ - validateToken(validateTokenRequest, _options) { + singleAnswer(singleAnswerRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (validateTokenRequest === null || validateTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "validateToken", "validateTokenRequest"); + if (singleAnswerRequest === null || singleAnswerRequest === void 0) { + throw new RequiredError("AIApi", "singleAnswer", "singleAnswerRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/validate"; + const localVarPath = "/api/rest/2.0/ai/answer/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), + ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14898,48 +16838,40 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var AuthenticationApiResponseProcessor = class { +var AIApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserInfo + * @params response Response returned by the server for a request to createAgentConversation * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserInfo(response) { + createAgentConversation(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "AgentConversation", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "AgentConversation", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14947,12 +16879,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "AgentConversation", "" ); return body; @@ -14964,43 +16896,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserToken + * @params response Response returned by the server for a request to createConversation * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserToken(response) { + createConversation(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", + "Conversation", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "Conversation", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15008,12 +16932,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", + "Conversation", "" ); return body; @@ -15025,43 +16949,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCustomAccessToken + * @params response Response returned by the server for a request to getDataSourceSuggestions * @throws ApiException if the response code was not in [200, 299] */ - getCustomAccessToken(response) { + getDataSourceSuggestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaDataSourceSuggestionResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDataSourceSuggestionResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15069,12 +16985,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaDataSourceSuggestionResponse", "" ); return body; @@ -15086,43 +17002,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getFullAccessToken + * @params response Response returned by the server for a request to getNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - getFullAccessToken(response) { + getNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetNLInstructionsResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaGetNLInstructionsResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15130,12 +17038,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetNLInstructionsResponse", "" ); return body; @@ -15147,43 +17055,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getObjectAccessToken + * @params response Response returned by the server for a request to getRelevantQuestions * @throws ApiException if the response code was not in [200, 299] */ - getObjectAccessToken(response) { + getRelevantQuestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetRelevantQuestionsResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaGetRelevantQuestionsResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15191,12 +17091,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetRelevantQuestionsResponse", "" ); return body; @@ -15208,38 +17108,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to login + * @params response Response returned by the server for a request to queryGetDecomposedQuery * @throws ApiException if the response code was not in [200, 299] */ - login(response) { + queryGetDecomposedQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDecomposeQueryResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + return body; } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDecomposeQueryResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15247,12 +17144,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "EurekaDecomposeQueryResponse", "" ); return body; @@ -15264,38 +17161,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to logout + * @params response Response returned by the server for a request to sendAgentMessage * @throws ApiException if the response code was not in [200, 299] */ - logout(response) { + sendAgentMessage(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "any", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + return body; } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "any", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15303,12 +17197,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -15320,14 +17214,27 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to revokeToken + * @params response Response returned by the server for a request to sendAgentMessageStreaming * @throws ApiException if the response code was not in [200, 299] */ - revokeToken(response) { + sendAgentMessageStreaming(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15335,23 +17242,60 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendMessage + * @throws ApiException if the response code was not in [200, 299] + */ + sendMessage(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15359,12 +17303,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -15376,16 +17320,24 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateToken + * @params response Response returned by the server for a request to setNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - validateToken(response) { + setNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "TokenValidationResponse", + "EurekaSetNLInstructionsResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -15396,23 +17348,60 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to singleAnswer + * @throws ApiException if the response code was not in [200, 299] + */ + singleAnswer(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseMessage", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseMessage", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15420,12 +17409,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "TokenValidationResponse", + "ResponseMessage", "" ); return body; @@ -15435,37 +17424,113 @@ var AuthenticationApiResponseProcessor = class { } }; -// apis/ConnectionConfigurationsApi.ts -var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/AuthenticationApi.ts +var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. - * @param connectionConfigurationSearchRequest + * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. */ - connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { + getCurrentUserInfo(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); + const localVarPath = "/api/rest/2.0/auth/session/user"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/connection-configurations/search"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request + */ + getCurrentUserToken(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/auth/session/token"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param getCustomAccessTokenRequest + */ + getCustomAccessToken(getCustomAccessTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/custom"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), + ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getFullAccessTokenRequest + */ + getFullAccessToken(getFullAccessTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "getFullAccessToken", "getFullAccessTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/full"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -15474,26 +17539,59 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. - * @param createConnectionConfigurationRequest + * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getObjectAccessTokenRequest */ - createConnectionConfiguration(createConnectionConfigurationRequest, _options) { + getObjectAccessToken(getObjectAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); + if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/create"; + const localVarPath = "/api/rest/2.0/auth/token/object"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. + * @param loginRequest + */ + login(loginRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (loginRequest === null || loginRequest === void 0) { + throw new RequiredError("AuthenticationApi", "login", "loginRequest"); + } + const localVarPath = "/api/rest/2.0/auth/session/login"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -15510,26 +17608,51 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } /** - * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - * @param deleteConnectionConfigurationRequest + * Version: 9.0.0.cl or later Logs out a user from their current session. */ - deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { + logout(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); + const localVarPath = "/api/rest/2.0/auth/session/logout"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/connection-configurations/delete"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). + * @param revokeTokenRequest + */ + revokeToken(revokeTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (revokeTokenRequest === null || revokeTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "revokeToken", "revokeTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/revoke"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -15546,30 +17669,27 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. - * @param configurationIdentifier Unique ID or name of the configuration. - * @param updateConnectionConfigurationRequest + * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). + * @param validateTokenRequest */ - updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + validateToken(validateTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (configurationIdentifier === null || configurationIdentifier === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "configurationIdentifier"); - } - if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + if (validateTokenRequest === null || validateTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "validateToken", "validateTokenRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const localVarPath = "/api/rest/2.0/auth/token/validate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -15586,21 +17706,21 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } }; -var ConnectionConfigurationsApiResponseProcessor = class { +var AuthenticationApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to connectionConfigurationSearch + * @params response Response returned by the server for a request to getCurrentUserInfo * @throws ApiException if the response code was not in [200, 299] */ - connectionConfigurationSearch(response) { + getCurrentUserInfo(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -15640,7 +17760,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -15652,16 +17772,16 @@ var ConnectionConfigurationsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConnectionConfiguration + * @params response Response returned by the server for a request to getCurrentUserToken * @throws ApiException if the response code was not in [200, 299] */ - createConnectionConfiguration(response) { + getCurrentUserToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", + "GetTokenResponse", "" ); return body; @@ -15701,7 +17821,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", + "GetTokenResponse", "" ); return body; @@ -15713,14 +17833,19 @@ var ConnectionConfigurationsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionConfiguration + * @params response Response returned by the server for a request to getCustomAccessToken * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionConfiguration(response) { + getCustomAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AccessToken", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15728,7 +17853,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15736,7 +17861,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15744,7 +17869,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15752,12 +17877,12 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "AccessToken", "" ); return body; @@ -15769,14 +17894,19 @@ var ConnectionConfigurationsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConnectionConfiguration + * @params response Response returned by the server for a request to getFullAccessToken * @throws ApiException if the response code was not in [200, 299] */ - updateConnectionConfiguration(response) { + getFullAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Token", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15813,7 +17943,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Token", "" ); return body; @@ -15821,294 +17951,79 @@ var ConnectionConfigurationsApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/ConnectionsApi.ts -var ConnectionsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. - * @param createConnectionRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getObjectAccessToken + * @throws ApiException if the response code was not in [200, 299] */ - createConnection(createConnectionRequest, _options) { + getObjectAccessToken(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConnectionRequest === null || createConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "createConnection", "createConnectionRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Token", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/connection/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. - * @param deleteConnectionRequest - */ - deleteConnection(deleteConnectionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "deleteConnection", "deleteConnectionRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/connection/delete"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Token", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. - * @param connectionIdentifier Unique ID or name of the connection. + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to login + * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionV2(connectionIdentifier, _options) { + login(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "deleteConnectionV2", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection - */ - downloadConnectionMetadataChanges(connectionIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection - */ - fetchConnectionDiffStatus(connectionIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "fetchConnectionDiffStatus", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. - * @param searchConnectionRequest - */ - searchConnection(searchConnectionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (searchConnectionRequest === null || searchConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "searchConnection", "searchConnectionRequest"); - } - const localVarPath = "/api/rest/2.0/connection/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. - * @param updateConnectionRequest - */ - updateConnection(updateConnectionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (updateConnectionRequest === null || updateConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "updateConnection", "updateConnectionRequest"); - } - const localVarPath = "/api/rest/2.0/connection/update"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * 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\":[ ] } ``` - * @param connectionIdentifier Unique ID or name of the connection. - * @param updateConnectionV2Request - */ - updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "updateConnectionV2", "connectionIdentifier"); - } - if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { - throw new RequiredError("ConnectionsApi", "updateConnectionV2", "updateConnectionV2Request"); - } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } -}; -var ConnectionsApiResponseProcessor = class { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConnection - * @throws ApiException if the response code was not in [200, 299] - */ - createConnection(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", - "" - ); - return body; + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16145,7 +18060,7 @@ var ConnectionsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", + "void", "" ); return body; @@ -16157,10 +18072,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnection + * @params response Response returned by the server for a request to logout * @throws ApiException if the response code was not in [200, 299] */ - deleteConnection(response) { + logout(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16213,10 +18128,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionV2 + * @params response Response returned by the server for a request to revokeToken * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionV2(response) { + revokeToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16269,21 +18184,25 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to downloadConnectionMetadataChanges + * @params response Response returned by the server for a request to validateToken * @throws ApiException if the response code was not in [200, 299] */ - downloadConnectionMetadataChanges(response) { + validateToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "TokenValidationResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -16291,7 +18210,7 @@ var ConnectionsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -16299,7 +18218,7 @@ var ConnectionsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -16307,35 +18226,193 @@ var ConnectionsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "TokenValidationResponse", + "" ); return body; } throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/ConnectionConfigurationsApi.ts +var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. + * @param connectionConfigurationSearchRequest + */ + connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. + * @param createConnectionConfigurationRequest + */ + createConnectionConfiguration(createConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. + * @param deleteConnectionConfigurationRequest + */ + deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/delete"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * @param configurationIdentifier Unique ID or name of the configuration. + * @param updateConnectionConfigurationRequest + */ + updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (configurationIdentifier === null || configurationIdentifier === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "configurationIdentifier"); + } + if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var ConnectionConfigurationsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchConnectionDiffStatus + * @params response Response returned by the server for a request to connectionConfigurationSearch * @throws ApiException if the response code was not in [200, 299] */ - fetchConnectionDiffStatus(response) { + connectionConfigurationSearch(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "Array", "" ); return body; @@ -16375,7 +18452,7 @@ var ConnectionsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "Array", "" ); return body; @@ -16387,16 +18464,16 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConnection + * @params response Response returned by the server for a request to createConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - searchConnection(response) { + createConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ConnectionConfigurationResponse", "" ); return body; @@ -16436,7 +18513,7 @@ var ConnectionsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ConnectionConfigurationResponse", "" ); return body; @@ -16448,10 +18525,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConnection + * @params response Response returned by the server for a request to deleteConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - updateConnection(response) { + deleteConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16504,10 +18581,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConnectionV2 + * @params response Response returned by the server for a request to updateConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - updateConnectionV2(response) { + updateConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16558,29 +18635,30 @@ var ConnectionsApiResponseProcessor = class { } }; -// apis/CustomActionApi.ts -var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/ConnectionsApi.ts +var ConnectionsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param createCustomActionRequest + * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. + * @param createConnectionRequest */ - createCustomAction(createCustomActionRequest, _options) { + createConnection(createConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createCustomActionRequest === null || createCustomActionRequest === void 0) { - throw new RequiredError("CustomActionApi", "createCustomAction", "createCustomActionRequest"); + if (createConnectionRequest === null || createConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "createConnection", "createConnectionRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions"; + const localVarPath = "/api/rest/2.0/connection/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), + ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -16597,20 +18675,30 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param customActionIdentifier Unique ID or name of the custom action. + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. + * @param deleteConnectionRequest */ - deleteCustomAction(customActionIdentifier, _options) { + deleteConnection(deleteConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("CustomActionApi", "deleteCustomAction", "customActionIdentifier"); + if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "deleteConnection", "deleteConnectionRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/connection/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -16624,29 +18712,21 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param searchCustomActionsRequest + * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. + * @param connectionIdentifier Unique ID or name of the connection. */ - searchCustomActions(searchCustomActionsRequest, _options) { + deleteConnectionV2(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { - throw new RequiredError("CustomActionApi", "searchCustomActions", "searchCustomActionsRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "deleteConnectionV2", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -16660,33 +18740,21 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param customActionIdentifier Unique ID or name of the custom action. - * @param updateCustomActionRequest + * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { + downloadConnectionMetadataChanges(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("CustomActionApi", "updateCustomAction", "customActionIdentifier"); - } - if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { - throw new RequiredError("CustomActionApi", "updateCustomAction", "updateCustomActionRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -16699,81 +18767,168 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var CustomActionApiResponseProcessor = class { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createCustomAction - * @throws ApiException if the response code was not in [200, 299] + * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - createCustomAction(response) { + fetchConnectionDiffStatus(connectionIdentifier, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "fetchConnectionDiffStatus", "connectionIdentifier"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. + * @param searchConnectionRequest + */ + searchConnection(searchConnectionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchConnectionRequest === null || searchConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "searchConnection", "searchConnectionRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/connection/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. + * @param updateConnectionRequest + */ + updateConnection(updateConnectionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateConnectionRequest === null || updateConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "updateConnection", "updateConnectionRequest"); + } + const localVarPath = "/api/rest/2.0/connection/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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\":[ ] } ``` + * @param connectionIdentifier Unique ID or name of the connection. + * @param updateConnectionV2Request + */ + updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "updateConnectionV2", "connectionIdentifier"); + } + if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { + throw new RequiredError("ConnectionsApi", "updateConnectionV2", "updateConnectionV2Request"); + } + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; }); } +}; +var ConnectionsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCustomAction + * @params response Response returned by the server for a request to createConnection * @throws ApiException if the response code was not in [200, 299] */ - deleteCustomAction(response) { + createConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateConnectionResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16810,7 +18965,7 @@ var CustomActionApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "CreateConnectionResponse", "" ); return body; @@ -16822,19 +18977,14 @@ var CustomActionApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCustomActions + * @params response Response returned by the server for a request to deleteConnection * @throws ApiException if the response code was not in [200, 299] */ - searchCustomActions(response) { + deleteConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16871,7 +19021,7 @@ var CustomActionApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -16883,10 +19033,10 @@ var CustomActionApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateCustomAction + * @params response Response returned by the server for a request to deleteConnectionV2 * @throws ApiException if the response code was not in [200, 299] */ - updateCustomAction(response) { + deleteConnectionV2(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16935,210 +19085,25 @@ var CustomActionApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/CustomCalendarsApi.ts -var CustomCalendarsApiRequestFactory = class extends BaseAPIRequestFactory { - /** - * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` - * @param createCalendarRequest - */ - createCalendar(createCalendarRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createCalendarRequest === null || createCalendarRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "createCalendar", "createCalendarRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. - * @param calendarIdentifier Unique ID or name of the Calendar. - */ - deleteCalendar(calendarIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("CustomCalendarsApi", "deleteCalendar", "calendarIdentifier"); - } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. - * @param generateCSVRequest - */ - generateCSV(generateCSVRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (generateCSVRequest === null || generateCSVRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "generateCSV", "generateCSVRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/generate-csv"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. - * @param searchCalendarsRequest - */ - searchCalendars(searchCalendarsRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "searchCalendars", "searchCalendarsRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` - * @param calendarIdentifier Unique Id or name of the calendar. - * @param updateCalendarRequest - */ - updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("CustomCalendarsApi", "updateCalendar", "calendarIdentifier"); - } - if (updateCalendarRequest === null || updateCalendarRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "updateCalendar", "updateCalendarRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } -}; -var CustomCalendarsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createCalendar + * @params response Response returned by the server for a request to downloadConnectionMetadataChanges * @throws ApiException if the response code was not in [200, 299] */ - createCalendar(response) { + downloadConnectionMetadataChanges(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", - "" - ); + const body = yield response.getBodyAsFile(); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -17146,7 +19111,7 @@ var CustomCalendarsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -17154,7 +19119,7 @@ var CustomCalendarsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -17162,15 +19127,15 @@ var CustomCalendarsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", - "" + "HttpFile", + "binary" ); return body; } @@ -17181,14 +19146,19 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCalendar + * @params response Response returned by the server for a request to fetchConnectionDiffStatus * @throws ApiException if the response code was not in [200, 299] */ - deleteCalendar(response) { + fetchConnectionDiffStatus(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "FetchConnectionDiffStatusResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17225,7 +19195,7 @@ var CustomCalendarsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "FetchConnectionDiffStatusResponse", "" ); return body; @@ -17237,16 +19207,16 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to generateCSV + * @params response Response returned by the server for a request to searchConnection * @throws ApiException if the response code was not in [200, 299] */ - generateCSV(response) { + searchConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -17286,7 +19256,7 @@ var CustomCalendarsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -17298,19 +19268,14 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCalendars + * @params response Response returned by the server for a request to updateConnection * @throws ApiException if the response code was not in [200, 299] */ - searchCalendars(response) { + updateConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17347,7 +19312,7 @@ var CustomCalendarsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -17359,10 +19324,10 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateCalendar + * @params response Response returned by the server for a request to updateConnectionV2 * @throws ApiException if the response code was not in [200, 299] */ - updateCalendar(response) { + updateConnectionV2(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -17413,83 +19378,33 @@ var CustomCalendarsApiResponseProcessor = class { } }; -// apis/DBTApi.ts -var DBTApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/CustomActionApi.ts +var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param createCustomActionRequest */ - dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + createCustomAction(createCustomActionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionName === null || connectionName === void 0) { - throw new RequiredError("DBTApi", "dbtConnection", "connectionName"); - } - if (databaseName === null || databaseName === void 0) { - throw new RequiredError("DBTApi", "dbtConnection", "databaseName"); + if (createCustomActionRequest === null || createCustomActionRequest === void 0) { + throw new RequiredError("CustomActionApi", "createCustomAction", "createCustomActionRequest"); } - const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; + const localVarPath = "/api/rest/2.0/customization/custom-actions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17503,45 +19418,21 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param fileContent 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’ + * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param customActionIdentifier Unique ID or name of the custom action. */ - dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { + deleteCustomAction(customActionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("CustomActionApi", "deleteCustomAction", "customActionIdentifier"); } - const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" - ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17555,83 +19446,30 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED - * @param fileContent 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’ + * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param searchCustomActionsRequest */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { + searchCustomActions(searchCustomActionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "dbtGenerateTml", "dbtConnectionIdentifier"); - } - if (importWorksheets === null || importWorksheets === void 0) { - throw new RequiredError("DBTApi", "dbtGenerateTml", "importWorksheets"); + if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { + throw new RequiredError("CustomActionApi", "searchCustomActions", "searchCustomActionsRequest"); } - const localVarPath = "/api/rest/2.0/dbt/generate-tml"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (modelTables !== void 0) { - localVarFormParams.append("model_tables", modelTables); - } - if (importWorksheets !== void 0) { - localVarFormParams.append("import_worksheets", importWorksheets); - } - if (worksheets !== void 0) { - localVarFormParams.append("worksheets", worksheets); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. - */ - dbtSearch(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/dbt/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17645,108 +19483,34 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param customActionIdentifier Unique ID or name of the custom action. + * @param updateCustomActionRequest */ - deleteDbtConnection(dbtConnectionIdentifier, _options) { + updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "deleteDbtConnection", "dbtConnectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("CustomActionApi", "updateCustomAction", "customActionIdentifier"); } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' - */ - updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "updateDbtConnection", "dbtConnectionIdentifier"); + if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { + throw new RequiredError("CustomActionApi", "updateCustomAction", "updateCustomActionRequest"); } - const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17760,21 +19524,21 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var DBTApiResponseProcessor = class { +var CustomActionApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtConnection + * @params response Response returned by the server for a request to createCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtConnection(response) { + createCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "ResponseCustomAction", "" ); return body; @@ -17814,7 +19578,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "ResponseCustomAction", "" ); return body; @@ -17826,19 +19590,14 @@ var DBTApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateSyncTml + * @params response Response returned by the server for a request to deleteCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateSyncTml(response) { + deleteCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17875,7 +19634,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -17887,16 +19646,16 @@ var DBTApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateTml + * @params response Response returned by the server for a request to searchCustomActions * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateTml(response) { + searchCustomActions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -17936,7 +19695,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -17948,19 +19707,14 @@ var DBTApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtSearch + * @params response Response returned by the server for a request to updateCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtSearch(response) { + updateCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17997,7 +19751,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -18005,148 +19759,97 @@ var DBTApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/CustomCalendarsApi.ts +var CustomCalendarsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteDbtConnection - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` + * @param createCalendarRequest */ - deleteDbtConnection(response) { + createCalendar(createCalendarRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (createCalendarRequest === null || createCalendarRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "createCalendar", "createCalendarRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/calendars/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateDbtConnection - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. + * @param calendarIdentifier Unique ID or name of the Calendar. */ - updateDbtConnection(response) { + deleteCalendar(calendarIdentifier, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("CustomCalendarsApi", "deleteCalendar", "calendarIdentifier"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } -}; - -// apis/DataApi.ts -var DataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). - * @param fetchAnswerDataRequest + * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. + * @param generateCSVRequest */ - fetchAnswerData(fetchAnswerDataRequest, _options) { + generateCSV(generateCSVRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { - throw new RequiredError("DataApi", "fetchAnswerData", "fetchAnswerDataRequest"); + if (generateCSVRequest === null || generateCSVRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "generateCSV", "generateCSVRequest"); } - const localVarPath = "/api/rest/2.0/metadata/answer/data"; + const localVarPath = "/api/rest/2.0/calendars/generate-csv"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), + ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -18163,26 +19866,27 @@ var DataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). - * @param fetchLiveboardDataRequest + * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. + * @param searchCalendarsRequest */ - fetchLiveboardData(fetchLiveboardDataRequest, _options) { + searchCalendars(searchCalendarsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { - throw new RequiredError("DataApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); + if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "searchCalendars", "searchCalendarsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; + const localVarPath = "/api/rest/2.0/calendars/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), + ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -18199,26 +19903,31 @@ var DataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). - * @param searchDataRequest + * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` + * @param calendarIdentifier Unique Id or name of the calendar. + * @param updateCalendarRequest */ - searchData(searchDataRequest, _options) { + updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchDataRequest === null || searchDataRequest === void 0) { - throw new RequiredError("DataApi", "searchData", "searchDataRequest"); + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("CustomCalendarsApi", "updateCalendar", "calendarIdentifier"); } - const localVarPath = "/api/rest/2.0/searchdata"; + if (updateCalendarRequest === null || updateCalendarRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "updateCalendar", "updateCalendarRequest"); + } + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), + ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -18235,21 +19944,21 @@ var DataApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var DataApiResponseProcessor = class { +var CustomCalendarsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerData + * @params response Response returned by the server for a request to createCalendar * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerData(response) { + createCalendar(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "CalendarResponse", "" ); return body; @@ -18289,7 +19998,7 @@ var DataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "CalendarResponse", "" ); return body; @@ -18301,19 +20010,14 @@ var DataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLiveboardData + * @params response Response returned by the server for a request to deleteCalendar * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardData(response) { + deleteCalendar(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18350,7 +20054,7 @@ var DataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", + "void", "" ); return body; @@ -18362,16 +20066,16 @@ var DataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchData + * @params response Response returned by the server for a request to generateCSV * @throws ApiException if the response code was not in [200, 299] */ - searchData(response) { + generateCSV(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "any", "" ); return body; @@ -18411,7 +20115,7 @@ var DataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "any", "" ); return body; @@ -18419,34 +20123,203 @@ var DataApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/EmailCustomizationApi.ts -var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param createEmailCustomizationRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCalendars + * @throws ApiException if the response code was not in [200, 299] */ - createEmailCustomization(createEmailCustomizationRequest, _options) { + searchCalendars(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "createEmailCustomization", "createEmailCustomizationRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/customization/email"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateCalendar + * @throws ApiException if the response code was not in [200, 299] + */ + updateCalendar(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/DBTApi.ts +var DBTApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + */ + dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionName === null || connectionName === void 0) { + throw new RequiredError("DBTApi", "dbtConnection", "connectionName"); + } + if (databaseName === null || databaseName === void 0) { + throw new RequiredError("DBTApi", "dbtConnection", "databaseName"); + } + const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18460,20 +20333,46 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. - * @param templateIdentifier Unique ID or name of the email customization. + * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param fileContent 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’ */ - deleteEmailCustomization(templateIdentifier, _options) { + dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (templateIdentifier === null || templateIdentifier === void 0) { - throw new RequiredError("EmailCustomizationApi", "deleteEmailCustomization", "templateIdentifier"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); + const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" + ]); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18487,29 +20386,64 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. - * @param deleteOrgEmailCustomizationRequest + * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' + * @param importWorksheets Mention the worksheet tmls to import + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] + * @param fileContent 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’ */ - deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/email/delete"; + if (modelTables === null || modelTables === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "modelTables"); + } + if (importWorksheets === null || importWorksheets === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "importWorksheets"); + } + const localVarPath = "/api/rest/2.0/dbt/generate-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (modelTables !== void 0) { + localVarFormParams.append("model_tables", modelTables); + } + if (importWorksheets !== void 0) { + localVarFormParams.append("import_worksheets", importWorksheets); + } + if (worksheets !== void 0) { + localVarFormParams.append("worksheets", worksheets); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18523,29 +20457,17 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. - * @param searchEmailCustomizationRequest + * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ - searchEmailCustomization(searchEmailCustomizationRequest, _options) { + dbtSearch(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); - } - const localVarPath = "/api/rest/2.0/customization/email/search"; + const localVarPath = "/api/rest/2.0/dbt/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18559,29 +20481,21 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param updateEmailCustomizationRequest + * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. */ - updateEmailCustomization(updateEmailCustomizationRequest, _options) { + deleteDbtConnection(dbtConnectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "deleteDbtConnection", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/email/update"; + const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18595,16 +20509,82 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' */ - validateEmailCustomization(_options) { + updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/customization/email/validate"; + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "updateDbtConnection", "dbtConnectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" + ]); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18618,21 +20598,21 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var EmailCustomizationApiResponseProcessor = class { +var DBTApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createEmailCustomization + * @params response Response returned by the server for a request to dbtConnection * @throws ApiException if the response code was not in [200, 299] */ - createEmailCustomization(response) { + dbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", + "any", "" ); return body; @@ -18645,7 +20625,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18653,6 +20633,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18664,7 +20652,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", + "any", "" ); return body; @@ -18676,14 +20664,19 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteEmailCustomization + * @params response Response returned by the server for a request to dbtGenerateSyncTml * @throws ApiException if the response code was not in [200, 299] */ - deleteEmailCustomization(response) { + dbtGenerateSyncTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18693,7 +20686,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18701,6 +20694,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18712,7 +20713,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -18724,14 +20725,19 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteOrgEmailCustomization + * @params response Response returned by the server for a request to dbtGenerateTml * @throws ApiException if the response code was not in [200, 299] */ - deleteOrgEmailCustomization(response) { + dbtGenerateTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18755,7 +20761,7 @@ var EmailCustomizationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18768,7 +20774,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -18780,16 +20786,16 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchEmailCustomization + * @params response Response returned by the server for a request to dbtSearch * @throws ApiException if the response code was not in [200, 299] */ - searchEmailCustomization(response) { + dbtSearch(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -18802,7 +20808,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18810,6 +20816,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18821,7 +20835,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -18833,10 +20847,10 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateEmailCustomization + * @params response Response returned by the server for a request to deleteDbtConnection * @throws ApiException if the response code was not in [200, 299] */ - updateEmailCustomization(response) { + deleteDbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -18864,7 +20878,7 @@ var EmailCustomizationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18889,14 +20903,19 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateEmailCustomization + * @params response Response returned by the server for a request to updateDbtConnection * @throws ApiException if the response code was not in [200, 299] */ - validateEmailCustomization(response) { + updateDbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18906,7 +20925,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18914,6 +20933,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18925,7 +20952,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -18935,92 +20962,30 @@ var EmailCustomizationApiResponseProcessor = class { } }; -// apis/GroupsApi.ts -var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/DataApi.ts +var DataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard - * @param createUserGroupRequest + * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). + * @param fetchAnswerDataRequest */ - createUserGroup(createUserGroupRequest, _options) { + fetchAnswerData(fetchAnswerDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createUserGroupRequest === null || createUserGroupRequest === void 0) { - throw new RequiredError("GroupsApi", "createUserGroup", "createUserGroupRequest"); - } - const localVarPath = "/api/rest/2.0/groups/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. - * @param groupIdentifier GUID or name of the group. - */ - deleteUserGroup(groupIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("GroupsApi", "deleteUserGroup", "groupIdentifier"); - } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. - * @param importUserGroupsRequest - */ - importUserGroups(importUserGroupsRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { - throw new RequiredError("GroupsApi", "importUserGroups", "importUserGroupsRequest"); + if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { + throw new RequiredError("DataApi", "fetchAnswerData", "fetchAnswerDataRequest"); } - const localVarPath = "/api/rest/2.0/groups/import"; + const localVarPath = "/api/rest/2.0/metadata/answer/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), + ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19037,26 +21002,27 @@ var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. - * @param searchUserGroupsRequest + * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). + * @param fetchLiveboardDataRequest */ - searchUserGroups(searchUserGroupsRequest, _options) { + fetchLiveboardData(fetchLiveboardDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { - throw new RequiredError("GroupsApi", "searchUserGroups", "searchUserGroupsRequest"); + if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { + throw new RequiredError("DataApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); } - const localVarPath = "/api/rest/2.0/groups/search"; + const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), + ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19073,30 +21039,27 @@ var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings - * @param groupIdentifier GUID or name of the group. - * @param updateUserGroupRequest + * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). + * @param searchDataRequest */ - updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { + searchData(searchDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("GroupsApi", "updateUserGroup", "groupIdentifier"); - } - if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { - throw new RequiredError("GroupsApi", "updateUserGroup", "updateUserGroupRequest"); + if (searchDataRequest === null || searchDataRequest === void 0) { + throw new RequiredError("DataApi", "searchData", "searchDataRequest"); } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); + const localVarPath = "/api/rest/2.0/searchdata"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), + ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19113,81 +21076,25 @@ var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var GroupsApiResponseProcessor = class { +var DataApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUserGroup + * @params response Response returned by the server for a request to fetchAnswerData * @throws ApiException if the response code was not in [200, 299] */ - createUserGroup(response) { + fetchAnswerData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", + "AnswerDataResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteUserGroup - * @throws ApiException if the response code was not in [200, 299] - */ - deleteUserGroup(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -19223,7 +21130,7 @@ var GroupsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "AnswerDataResponse", "" ); return body; @@ -19235,16 +21142,16 @@ var GroupsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importUserGroups + * @params response Response returned by the server for a request to fetchLiveboardData * @throws ApiException if the response code was not in [200, 299] */ - importUserGroups(response) { + fetchLiveboardData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", + "LiveboardDataResponse", "" ); return body; @@ -19284,7 +21191,7 @@ var GroupsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", + "LiveboardDataResponse", "" ); return body; @@ -19296,76 +21203,20 @@ var GroupsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchUserGroups + * @params response Response returned by the server for a request to searchData * @throws ApiException if the response code was not in [200, 299] */ - searchUserGroups(response) { + searchData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SearchDataResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateUserGroup - * @throws ApiException if the response code was not in [200, 299] - */ - updateUserGroup(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -19401,7 +21252,7 @@ var GroupsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "SearchDataResponse", "" ); return body; @@ -19411,29 +21262,30 @@ var GroupsApiResponseProcessor = class { } }; -// apis/LogApi.ts -var LogApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/EmailCustomizationApi.ts +var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). - * @param fetchLogsRequest + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param createEmailCustomizationRequest */ - fetchLogs(fetchLogsRequest, _options) { + createEmailCustomization(createEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLogsRequest === null || fetchLogsRequest === void 0) { - throw new RequiredError("LogApi", "fetchLogs", "fetchLogsRequest"); + if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "createEmailCustomization", "createEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/logs/fetch"; + const localVarPath = "/api/rest/2.0/customization/email"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), + ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19449,97 +21301,22 @@ var LogApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var LogApiResponseProcessor = class { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to fetchLogs - * @throws ApiException if the response code was not in [200, 299] - */ - fetchLogs(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } -}; - -// apis/MetadataApi.ts -var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` - * @param convertWorksheetToModelRequest + * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. + * @param templateIdentifier Unique ID or name of the email customization. */ - convertWorksheetToModel(convertWorksheetToModelRequest, _options) { + deleteEmailCustomization(templateIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { - throw new RequiredError("MetadataApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); + if (templateIdentifier === null || templateIdentifier === void 0) { + throw new RequiredError("EmailCustomizationApi", "deleteEmailCustomization", "templateIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; + const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -19553,26 +21330,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. - * @param copyObjectRequest + * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. + * @param deleteOrgEmailCustomizationRequest */ - copyObject(copyObjectRequest, _options) { + deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (copyObjectRequest === null || copyObjectRequest === void 0) { - throw new RequiredError("MetadataApi", "copyObject", "copyObjectRequest"); + if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/copyobject"; + const localVarPath = "/api/rest/2.0/customization/email/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), + ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19589,26 +21367,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. - * @param deleteMetadataRequest + * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * @param searchEmailCustomizationRequest */ - deleteMetadata(deleteMetadataRequest, _options) { + searchEmailCustomization(searchEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "deleteMetadata", "deleteMetadataRequest"); + if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/delete"; + const localVarPath = "/api/rest/2.0/customization/email/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), + ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19625,26 +21404,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). - * @param exportMetadataTMLRequest + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param updateEmailCustomizationRequest */ - exportMetadataTML(exportMetadataTMLRequest, _options) { + updateEmailCustomization(updateEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { - throw new RequiredError("MetadataApi", "exportMetadataTML", "exportMetadataTMLRequest"); + if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/tml/export"; + const localVarPath = "/api/rest/2.0/customization/email/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), + ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19661,29 +21441,17 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. - * @param exportMetadataTMLBatchedRequest + * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ - exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { + validateEmailCustomization(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { - throw new RequiredError("MetadataApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; + const localVarPath = "/api/rest/2.0/customization/email/validate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -19696,207 +21464,348 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var EmailCustomizationApiResponseProcessor = class { /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` - * @param fetchAnswerSqlQueryRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { + createEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { - throw new RequiredError("MetadataApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/answer/sql"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. - * @param fetchAsyncImportTaskStatusRequest - */ - fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { - throw new RequiredError("MetadataApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` - * @param fetchLiveboardSqlQueryRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { + deleteEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { - throw new RequiredError("MetadataApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). - * @param importMetadataTMLRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteOrgEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTML(importMetadataTMLRequest, _options) { + deleteOrgEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { - throw new RequiredError("MetadataApi", "importMetadataTML", "importMetadataTMLRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/metadata/tml/import"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. - * @param importMetadataTMLAsyncRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { + searchEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { - throw new RequiredError("MetadataApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. - * @param parameterizeMetadataRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - parameterizeMetadata(parameterizeMetadataRequest, _options) { + updateEmailCustomization(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to validateEmailCustomization + * @throws ApiException if the response code was not in [200, 299] + */ + validateEmailCustomization(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/GroupsApi.ts +var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard + * @param createUserGroupRequest + */ + createUserGroup(createUserGroupRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "parameterizeMetadata", "parameterizeMetadataRequest"); + if (createUserGroupRequest === null || createUserGroupRequest === void 0) { + throw new RequiredError("GroupsApi", "createUserGroup", "createUserGroupRequest"); } - const localVarPath = "/api/rest/2.0/metadata/parameterize"; + const localVarPath = "/api/rest/2.0/groups/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), + ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19913,29 +21822,21 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. - * @param searchMetadataRequest + * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. + * @param groupIdentifier GUID or name of the group. */ - searchMetadata(searchMetadataRequest, _options) { + deleteUserGroup(groupIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchMetadataRequest === null || searchMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "searchMetadata", "searchMetadataRequest"); + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("GroupsApi", "deleteUserGroup", "groupIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/search"; + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -19949,26 +21850,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. - * @param unparameterizeMetadataRequest + * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. + * @param importUserGroupsRequest */ - unparameterizeMetadata(unparameterizeMetadataRequest, _options) { + importUserGroups(importUserGroupsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); + if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { + throw new RequiredError("GroupsApi", "importUserGroups", "importUserGroupsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/unparameterize"; + const localVarPath = "/api/rest/2.0/groups/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19985,26 +21887,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` - * @param updateMetadataHeaderRequest + * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. + * @param searchUserGroupsRequest */ - updateMetadataHeader(updateMetadataHeaderRequest, _options) { + searchUserGroups(searchUserGroupsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { - throw new RequiredError("MetadataApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); + if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { + throw new RequiredError("GroupsApi", "searchUserGroups", "searchUserGroupsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/headers/update"; + const localVarPath = "/api/rest/2.0/groups/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), + ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -20021,26 +21924,31 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` - * @param updateMetadataObjIdRequest + * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings + * @param groupIdentifier GUID or name of the group. + * @param updateUserGroupRequest */ - updateMetadataObjId(updateMetadataObjIdRequest, _options) { + updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { - throw new RequiredError("MetadataApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("GroupsApi", "updateUserGroup", "groupIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; + if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { + throw new RequiredError("GroupsApi", "updateUserGroup", "updateUserGroupRequest"); + } + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), + ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -20057,21 +21965,21 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var MetadataApiResponseProcessor = class { +var GroupsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to convertWorksheetToModel + * @params response Response returned by the server for a request to createUserGroup * @throws ApiException if the response code was not in [200, 299] */ - convertWorksheetToModel(response) { + createUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -20111,7 +22019,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -20123,19 +22031,14 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to copyObject + * @params response Response returned by the server for a request to deleteUserGroup * @throws ApiException if the response code was not in [200, 299] */ - copyObject(response) { + deleteUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -20161,14 +22064,6 @@ var MetadataApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - if (isCodeInRange("404", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); - } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -20180,7 +22075,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", + "void", "" ); return body; @@ -20192,14 +22087,19 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteMetadata + * @params response Response returned by the server for a request to importUserGroups * @throws ApiException if the response code was not in [200, 299] */ - deleteMetadata(response) { + importUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ImportUserGroupsResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -20236,7 +22136,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ImportUserGroupsResponse", "" ); return body; @@ -20248,16 +22148,16 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTML + * @params response Response returned by the server for a request to searchUserGroups * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTML(response) { + searchUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -20297,7 +22197,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -20309,19 +22209,14 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTMLBatched + * @params response Response returned by the server for a request to updateUserGroup * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTMLBatched(response) { + updateUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -20358,7 +22253,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -20366,20 +22261,63 @@ var MetadataApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/LogApi.ts +var LogApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). + * @param fetchLogsRequest + */ + fetchLogs(fetchLogsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchLogsRequest === null || fetchLogsRequest === void 0) { + throw new RequiredError("LogApi", "fetchLogs", "fetchLogsRequest"); + } + const localVarPath = "/api/rest/2.0/logs/fetch"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var LogApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerSqlQuery + * @params response Response returned by the server for a request to fetchLogs * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerSqlQuery(response) { + fetchLogs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "Array", "" ); return body; @@ -20419,7 +22357,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "Array", "" ); return body; @@ -20427,560 +22365,439 @@ var MetadataApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/MetadataApi.ts +var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus - * @throws ApiException if the response code was not in [200, 299] + * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` + * @param convertWorksheetToModelRequest */ - fetchAsyncImportTaskStatus(response) { + convertWorksheetToModel(convertWorksheetToModelRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { + throw new RequiredError("MetadataApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to fetchLiveboardSqlQuery - * @throws ApiException if the response code was not in [200, 299] + * 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. + * @param copyObjectRequest */ - fetchLiveboardSqlQuery(response) { + copyObject(copyObjectRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (copyObjectRequest === null || copyObjectRequest === void 0) { + throw new RequiredError("MetadataApi", "copyObject", "copyObjectRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/copyobject"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to importMetadataTML - * @throws ApiException if the response code was not in [200, 299] + * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. + * @param deleteMetadataRequest */ - importMetadataTML(response) { + deleteMetadata(deleteMetadataRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "deleteMetadata", "deleteMetadataRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/delete"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). + * @param exportMetadataTMLRequest + */ + exportMetadataTML(exportMetadataTMLRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { + throw new RequiredError("MetadataApi", "exportMetadataTML", "exportMetadataTMLRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/export"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to importMetadataTMLAsync - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. + * @param exportMetadataTMLBatchedRequest */ - importMetadataTMLAsync(response) { + exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { + throw new RequiredError("MetadataApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` + * @param fetchAnswerSqlQueryRequest + */ + fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { + throw new RequiredError("MetadataApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/answer/sql"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to parameterizeMetadata - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. + * @param fetchAsyncImportTaskStatusRequest */ - parameterizeMetadata(response) { + fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { + throw new RequiredError("MetadataApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` + * @param fetchLiveboardSqlQueryRequest + */ + fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { + throw new RequiredError("MetadataApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to searchMetadata - * @throws ApiException if the response code was not in [200, 299] + * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). + * @param importMetadataTMLRequest */ - searchMetadata(response) { + importMetadataTML(importMetadataTMLRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { + throw new RequiredError("MetadataApi", "importMetadataTML", "importMetadataTMLRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to unparameterizeMetadata - * @throws ApiException if the response code was not in [200, 299] - */ - unparameterizeMetadata(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/import"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateMetadataHeader - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. + * @param importMetadataTMLAsyncRequest */ - updateMetadataHeader(response) { + importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { + throw new RequiredError("MetadataApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateMetadataObjId - * @throws ApiException if the response code was not in [200, 299] + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param parameterizeMetadataRequest */ - updateMetadataObjId(response) { + parameterizeMetadata(parameterizeMetadataRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "parameterizeMetadata", "parameterizeMetadataRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/parameterize"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } -}; - -// apis/OrgsApi.ts -var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param createOrgRequest + * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. + * @param searchMetadataRequest */ - createOrg(createOrgRequest, _options) { + searchMetadata(searchMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createOrgRequest === null || createOrgRequest === void 0) { - throw new RequiredError("OrgsApi", "createOrg", "createOrgRequest"); + if (searchMetadataRequest === null || searchMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "searchMetadata", "searchMetadataRequest"); } - const localVarPath = "/api/rest/2.0/orgs/create"; + const localVarPath = "/api/rest/2.0/metadata/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), + ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -20997,20 +22814,30 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. - * @param orgIdentifier ID or name of the Org + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param unparameterizeMetadataRequest */ - deleteOrg(orgIdentifier, _options) { + unparameterizeMetadata(unparameterizeMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("OrgsApi", "deleteOrg", "orgIdentifier"); + if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/unparameterize"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -21024,26 +22851,27 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param searchOrgsRequest + * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` + * @param updateMetadataHeaderRequest */ - searchOrgs(searchOrgsRequest, _options) { + updateMetadataHeader(updateMetadataHeaderRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchOrgsRequest === null || searchOrgsRequest === void 0) { - throw new RequiredError("OrgsApi", "searchOrgs", "searchOrgsRequest"); + if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { + throw new RequiredError("MetadataApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); } - const localVarPath = "/api/rest/2.0/orgs/search"; + const localVarPath = "/api/rest/2.0/metadata/headers/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), + ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21060,30 +22888,27 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param orgIdentifier ID or name of the Org - * @param updateOrgRequest + * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` + * @param updateMetadataObjIdRequest */ - updateOrg(orgIdentifier, updateOrgRequest, _options) { + updateMetadataObjId(updateMetadataObjIdRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("OrgsApi", "updateOrg", "orgIdentifier"); - } - if (updateOrgRequest === null || updateOrgRequest === void 0) { - throw new RequiredError("OrgsApi", "updateOrg", "updateOrgRequest"); + if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { + throw new RequiredError("MetadataApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), + ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21100,21 +22925,21 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var OrgsApiResponseProcessor = class { +var MetadataApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createOrg + * @params response Response returned by the server for a request to convertWorksheetToModel * @throws ApiException if the response code was not in [200, 299] */ - createOrg(response) { + convertWorksheetToModel(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", + "ResponseWorksheetToModelConversion", "" ); return body; @@ -21154,7 +22979,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", + "ResponseWorksheetToModelConversion", "" ); return body; @@ -21166,14 +22991,19 @@ var OrgsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteOrg + * @params response Response returned by the server for a request to copyObject * @throws ApiException if the response code was not in [200, 299] */ - deleteOrg(response) { + copyObject(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseCopyObject", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -21199,6 +23029,14 @@ var OrgsApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } + if (isCodeInRange("404", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -21210,7 +23048,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ResponseCopyObject", "" ); return body; @@ -21222,19 +23060,14 @@ var OrgsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchOrgs + * @params response Response returned by the server for a request to deleteMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchOrgs(response) { + deleteMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -21271,7 +23104,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -21283,14 +23116,19 @@ var OrgsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateOrg + * @params response Response returned by the server for a request to exportMetadataTML * @throws ApiException if the response code was not in [200, 299] */ - updateOrg(response) { + exportMetadataTML(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -21327,7 +23165,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -21335,103 +23173,29 @@ var OrgsApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/ReportsApi.ts -var ReportsApiRequestFactory = class extends BaseAPIRequestFactory { - /** - * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. - * @param exportAnswerReportRequest - */ - exportAnswerReport(exportAnswerReportRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { - throw new RequiredError("ReportsApi", "exportAnswerReport", "exportAnswerReportRequest"); - } - const localVarPath = "/api/rest/2.0/report/answer"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. - * @param exportLiveboardReportRequest - */ - exportLiveboardReport(exportLiveboardReportRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { - throw new RequiredError("ReportsApi", "exportLiveboardReport", "exportLiveboardReportRequest"); - } - const localVarPath = "/api/rest/2.0/report/liveboard"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } -}; -var ReportsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportAnswerReport + * @params response Response returned by the server for a request to exportMetadataTMLBatched * @throws ApiException if the response code was not in [200, 299] */ - exportAnswerReport(response) { + exportMetadataTMLBatched(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -21439,7 +23203,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -21447,7 +23211,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -21455,15 +23219,15 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "any", + "" ); return body; } @@ -21474,21 +23238,25 @@ var ReportsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportLiveboardReport + * @params response Response returned by the server for a request to fetchAnswerSqlQuery * @throws ApiException if the response code was not in [200, 299] */ - exportLiveboardReport(response) { + fetchAnswerSqlQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SqlQueryResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -21496,7 +23264,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -21504,7 +23272,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -21512,180 +23280,218 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "SqlQueryResponse", + "" ); return body; } throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/RolesApi.ts -var RolesApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param createRoleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus + * @throws ApiException if the response code was not in [200, 299] */ - createRole(createRoleRequest, _options) { + fetchAsyncImportTaskStatus(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createRoleRequest === null || createRoleRequest === void 0) { - throw new RequiredError("RolesApi", "createRole", "createRoleRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "GetAsyncImportStatusResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/roles/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. - */ - deleteRole(roleIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("RolesApi", "deleteRole", "roleIdentifier"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "GetAsyncImportStatusResponse", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. - * @param searchRolesRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to fetchLiveboardSqlQuery + * @throws ApiException if the response code was not in [200, 299] */ - searchRoles(searchRolesRequest, _options) { + fetchLiveboardSqlQuery(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (searchRolesRequest === null || searchRolesRequest === void 0) { - throw new RequiredError("RolesApi", "searchRoles", "searchRolesRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SqlQueryResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/roles/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SqlQueryResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. - * @param updateRoleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to importMetadataTML + * @throws ApiException if the response code was not in [200, 299] */ - updateRole(roleIdentifier, updateRoleRequest, _options) { + importMetadataTML(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("RolesApi", "updateRole", "roleIdentifier"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - if (updateRoleRequest === null || updateRoleRequest === void 0) { - throw new RequiredError("RolesApi", "updateRole", "updateRoleRequest"); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; -var RolesApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createRole + * @params response Response returned by the server for a request to importMetadataTMLAsync * @throws ApiException if the response code was not in [200, 299] */ - createRole(response) { + importMetadataTMLAsync(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -21696,7 +23502,7 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -21720,12 +23526,12 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -21737,10 +23543,10 @@ var RolesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteRole + * @params response Response returned by the server for a request to parameterizeMetadata * @throws ApiException if the response code was not in [200, 299] */ - deleteRole(response) { + parameterizeMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -21776,7 +23582,7 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( @@ -21793,16 +23599,16 @@ var RolesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchRoles + * @params response Response returned by the server for a request to searchMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchRoles(response) { + searchMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -21837,12 +23643,12 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -21854,20 +23660,71 @@ var RolesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateRole + * @params response Response returned by the server for a request to unparameterizeMetadata * @throws ApiException if the response code was not in [200, 299] */ - updateRole(response) { + unparameterizeMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", "" ); return body; } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetadataHeader + * @throws ApiException if the response code was not in [200, 299] + */ + updateMetadataHeader(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -21903,7 +23760,63 @@ var RolesApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetadataObjId + * @throws ApiException if the response code was not in [200, 299] + */ + updateMetadataObjId(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", "" ); return body; @@ -21913,29 +23826,30 @@ var RolesApiResponseProcessor = class { } }; -// apis/SchedulesApi.ts -var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/OrgsApi.ts +var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). - * @param createScheduleRequest + * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param createOrgRequest */ - createSchedule(createScheduleRequest, _options) { + createOrg(createOrgRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createScheduleRequest === null || createScheduleRequest === void 0) { - throw new RequiredError("SchedulesApi", "createSchedule", "createScheduleRequest"); + if (createOrgRequest === null || createOrgRequest === void 0) { + throw new RequiredError("OrgsApi", "createOrg", "createOrgRequest"); } - const localVarPath = "/api/rest/2.0/schedules/create"; + const localVarPath = "/api/rest/2.0/orgs/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21952,20 +23866,21 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. - * @param scheduleIdentifier Unique ID or name of the scheduled job. + * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. + * @param orgIdentifier ID or name of the Org */ - deleteSchedule(scheduleIdentifier, _options) { + deleteOrg(orgIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("SchedulesApi", "deleteSchedule", "scheduleIdentifier"); + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("OrgsApi", "deleteOrg", "orgIdentifier"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -21979,26 +23894,27 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. - * @param searchSchedulesRequest + * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param searchOrgsRequest */ - searchSchedules(searchSchedulesRequest, _options) { + searchOrgs(searchOrgsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { - throw new RequiredError("SchedulesApi", "searchSchedules", "searchSchedulesRequest"); + if (searchOrgsRequest === null || searchOrgsRequest === void 0) { + throw new RequiredError("OrgsApi", "searchOrgs", "searchOrgsRequest"); } - const localVarPath = "/api/rest/2.0/schedules/search"; + const localVarPath = "/api/rest/2.0/orgs/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), + ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22015,30 +23931,31 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. - * @param scheduleIdentifier Unique ID or name of the schedule. - * @param updateScheduleRequest + * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param orgIdentifier ID or name of the Org + * @param updateOrgRequest */ - updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + updateOrg(orgIdentifier, updateOrgRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("SchedulesApi", "updateSchedule", "scheduleIdentifier"); + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("OrgsApi", "updateOrg", "orgIdentifier"); } - if (updateScheduleRequest === null || updateScheduleRequest === void 0) { - throw new RequiredError("SchedulesApi", "updateSchedule", "updateScheduleRequest"); + if (updateOrgRequest === null || updateOrgRequest === void 0) { + throw new RequiredError("OrgsApi", "updateOrg", "updateOrgRequest"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22055,21 +23972,21 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var SchedulesApiResponseProcessor = class { +var OrgsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createSchedule + * @params response Response returned by the server for a request to createOrg * @throws ApiException if the response code was not in [200, 299] */ - createSchedule(response) { + createOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", + "OrgResponse", "" ); return body; @@ -22109,7 +24026,7 @@ var SchedulesApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", + "OrgResponse", "" ); return body; @@ -22121,10 +24038,10 @@ var SchedulesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteSchedule + * @params response Response returned by the server for a request to deleteOrg * @throws ApiException if the response code was not in [200, 299] */ - deleteSchedule(response) { + deleteOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -22177,16 +24094,16 @@ var SchedulesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchSchedules + * @params response Response returned by the server for a request to searchOrgs * @throws ApiException if the response code was not in [200, 299] */ - searchSchedules(response) { + searchOrgs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -22226,7 +24143,7 @@ var SchedulesApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -22238,10 +24155,10 @@ var SchedulesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateSchedule + * @params response Response returned by the server for a request to updateOrg * @throws ApiException if the response code was not in [200, 299] */ - updateSchedule(response) { + updateOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -22292,29 +24209,30 @@ var SchedulesApiResponseProcessor = class { } }; -// apis/SecurityApi.ts -var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/ReportsApi.ts +var ReportsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. - * @param assignChangeAuthorRequest + * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. + * @param exportAnswerReportRequest */ - assignChangeAuthor(assignChangeAuthorRequest, _options) { + exportAnswerReport(exportAnswerReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { - throw new RequiredError("SecurityApi", "assignChangeAuthor", "assignChangeAuthorRequest"); + if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { + throw new RequiredError("ReportsApi", "exportAnswerReport", "exportAnswerReportRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/assign"; + const localVarPath = "/api/rest/2.0/report/answer"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), + ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22331,26 +24249,27 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` - * @param fetchColumnSecurityRulesRequest + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. + * @param exportLiveboardReportRequest */ - fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { + exportLiveboardReport(exportLiveboardReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { - throw new RequiredError("SecurityApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); + if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { + throw new RequiredError("ReportsApi", "exportLiveboardReport", "exportLiveboardReportRequest"); } - const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; + const localVarPath = "/api/rest/2.0/report/liveboard"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), + ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22366,99 +24285,148 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var ReportsApiResponseProcessor = class { /** - * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. - * @param fetchPermissionsOfPrincipalsRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to exportAnswerReport + * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { + exportAnswerReport(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { - throw new RequiredError("SecurityApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } - const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "HttpFile", + "binary" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. - * @param fetchPermissionsOnMetadataRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to exportLiveboardReport + * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { + exportLiveboardReport(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } - const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "HttpFile", + "binary" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/RolesApi.ts +var RolesApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. - * @param publishMetadataRequest + * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param createRoleRequest */ - publishMetadata(publishMetadataRequest, _options) { + createRole(createRoleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (publishMetadataRequest === null || publishMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "publishMetadata", "publishMetadataRequest"); + if (createRoleRequest === null || createRoleRequest === void 0) { + throw new RequiredError("RolesApi", "createRole", "createRoleRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/publish"; + const localVarPath = "/api/rest/2.0/roles/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), + ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22475,29 +24443,21 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. - * @param shareMetadataRequest + * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. */ - shareMetadata(shareMetadataRequest, _options) { + deleteRole(roleIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (shareMetadataRequest === null || shareMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "shareMetadata", "shareMetadataRequest"); + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("RolesApi", "deleteRole", "roleIdentifier"); } - const localVarPath = "/api/rest/2.0/security/metadata/share"; + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -22511,26 +24471,27 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations - * @param unpublishMetadataRequest + * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. + * @param searchRolesRequest */ - unpublishMetadata(unpublishMetadataRequest, _options) { + searchRoles(searchRolesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "unpublishMetadata", "unpublishMetadataRequest"); + if (searchRolesRequest === null || searchRolesRequest === void 0) { + throw new RequiredError("RolesApi", "searchRoles", "searchRolesRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; + const localVarPath = "/api/rest/2.0/roles/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), + ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22547,26 +24508,31 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups - * @param updateColumnSecurityRulesRequest + * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. + * @param updateRoleRequest */ - updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { + updateRole(roleIdentifier, updateRoleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { - throw new RequiredError("SecurityApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("RolesApi", "updateRole", "roleIdentifier"); } - const localVarPath = "/api/rest/2.0/security/column/rules/update"; + if (updateRoleRequest === null || updateRoleRequest === void 0) { + throw new RequiredError("RolesApi", "updateRole", "updateRoleRequest"); + } + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), + ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22583,19 +24549,24 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var SecurityApiResponseProcessor = class { +var RolesApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignChangeAuthor + * @params response Response returned by the server for a request to createRole * @throws ApiException if the response code was not in [200, 299] */ - assignChangeAuthor(response) { + createRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RoleResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22603,7 +24574,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22627,12 +24598,12 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "RoleResponse", "" ); return body; @@ -22644,19 +24615,14 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchColumnSecurityRules + * @params response Response returned by the server for a request to deleteRole * @throws ApiException if the response code was not in [200, 299] */ - fetchColumnSecurityRules(response) { + deleteRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22664,7 +24630,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22680,7 +24646,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22688,12 +24654,12 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -22705,16 +24671,16 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals + * @params response Response returned by the server for a request to searchRoles * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOfPrincipals(response) { + searchRoles(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "Array", "" ); return body; @@ -22749,12 +24715,12 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "Array", "" ); return body; @@ -22766,16 +24732,16 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOnMetadata + * @params response Response returned by the server for a request to updateRole * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOnMetadata(response) { + updateRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "RoleResponse", "" ); return body; @@ -22815,7 +24781,7 @@ var SecurityApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "RoleResponse", "" ); return body; @@ -22823,18 +24789,172 @@ var SecurityApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/SchedulesApi.ts +var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). + * @param createScheduleRequest + */ + createSchedule(createScheduleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createScheduleRequest === null || createScheduleRequest === void 0) { + throw new RequiredError("SchedulesApi", "createSchedule", "createScheduleRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. + * @param scheduleIdentifier Unique ID or name of the scheduled job. + */ + deleteSchedule(scheduleIdentifier, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("SchedulesApi", "deleteSchedule", "scheduleIdentifier"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. + * @param searchSchedulesRequest + */ + searchSchedules(searchSchedulesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { + throw new RequiredError("SchedulesApi", "searchSchedules", "searchSchedulesRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. + * @param scheduleIdentifier Unique ID or name of the schedule. + * @param updateScheduleRequest + */ + updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("SchedulesApi", "updateSchedule", "scheduleIdentifier"); + } + if (updateScheduleRequest === null || updateScheduleRequest === void 0) { + throw new RequiredError("SchedulesApi", "updateSchedule", "updateScheduleRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var SchedulesApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to publishMetadata + * @params response Response returned by the server for a request to createSchedule * @throws ApiException if the response code was not in [200, 299] */ - publishMetadata(response) { + createSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseSchedule", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22871,7 +24991,7 @@ var SecurityApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ResponseSchedule", "" ); return body; @@ -22883,10 +25003,10 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to shareMetadata + * @params response Response returned by the server for a request to deleteSchedule * @throws ApiException if the response code was not in [200, 299] */ - shareMetadata(response) { + deleteSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -22939,14 +25059,19 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to unpublishMetadata + * @params response Response returned by the server for a request to searchSchedules * @throws ApiException if the response code was not in [200, 299] */ - unpublishMetadata(response) { + searchSchedules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22983,7 +25108,7 @@ var SecurityApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -22995,10 +25120,10 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateColumnSecurityRules + * @params response Response returned by the server for a request to updateSchedule * @throws ApiException if the response code was not in [200, 299] */ - updateColumnSecurityRules(response) { + updateSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23010,7 +25135,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Bad request - Invalid parameters or table not found", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23026,7 +25151,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to modify security rules for this table", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23034,7 +25159,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( @@ -23049,65 +25174,33 @@ var SecurityApiResponseProcessor = class { } }; -// apis/SystemApi.ts -var SystemApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/SecurityApi.ts +var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. + * @param assignChangeAuthorRequest */ - getSystemConfig(_options) { + assignChangeAuthor(assignChangeAuthorRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { + throw new RequiredError("SecurityApi", "assignChangeAuthor", "assignChangeAuthorRequest"); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. - */ - getSystemInformation(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. - */ - getSystemOverrideInfo(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config-overrides"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + const localVarPath = "/api/rest/2.0/security/metadata/assign"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -23121,26 +25214,27 @@ var SystemApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. - * @param updateSystemConfigRequest + * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` + * @param fetchColumnSecurityRulesRequest */ - updateSystemConfig(updateSystemConfigRequest, _options) { + fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { - throw new RequiredError("SystemApi", "updateSystemConfig", "updateSystemConfigRequest"); + if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { + throw new RequiredError("SecurityApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); } - const localVarPath = "/api/rest/2.0/system/config-update"; + const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), + ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23156,272 +25250,28 @@ var SystemApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var SystemApiResponseProcessor = class { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getSystemConfig - * @throws ApiException if the response code was not in [200, 299] - */ - getSystemConfig(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getSystemInformation - * @throws ApiException if the response code was not in [200, 299] - */ - getSystemInformation(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getSystemOverrideInfo - * @throws ApiException if the response code was not in [200, 299] - */ - getSystemOverrideInfo(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateSystemConfig - * @throws ApiException if the response code was not in [200, 299] - */ - updateSystemConfig(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } -}; - -// apis/TagsApi.ts -var TagsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. - * @param assignTagRequest + * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. + * @param fetchPermissionsOfPrincipalsRequest */ - assignTag(assignTagRequest, _options) { + fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("TagsApi", "assignTag", "assignTagRequest"); + if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { + throw new RequiredError("SecurityApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); } - const localVarPath = "/api/rest/2.0/tags/assign"; + const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23438,26 +25288,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a tag object. Tags 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. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param createTagRequest + * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. + * @param fetchPermissionsOnMetadataRequest */ - createTag(createTagRequest, _options) { + fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createTagRequest === null || createTagRequest === void 0) { - throw new RequiredError("TagsApi", "createTag", "createTagRequest"); + if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/create"; + const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createTagRequest, "CreateTagRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23474,20 +25325,30 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Tag identifier Tag name or Tag id. + * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. + * @param publishMetadataRequest */ - deleteTag(tagIdentifier, _options) { + publishMetadata(publishMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("TagsApi", "deleteTag", "tagIdentifier"); + if (publishMetadataRequest === null || publishMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "publishMetadata", "publishMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/security/metadata/publish"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -23501,26 +25362,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. - * @param searchTagsRequest + * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. + * @param shareMetadataRequest */ - searchTags(searchTagsRequest, _options) { + shareMetadata(shareMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchTagsRequest === null || searchTagsRequest === void 0) { - throw new RequiredError("TagsApi", "searchTags", "searchTagsRequest"); + if (shareMetadataRequest === null || shareMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "shareMetadata", "shareMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/search"; + const localVarPath = "/api/rest/2.0/security/metadata/share"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), + ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23537,26 +25399,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. - * @param assignTagRequest + * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations + * @param unpublishMetadataRequest */ - unassignTag(assignTagRequest, _options) { + unpublishMetadata(unpublishMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("TagsApi", "unassignTag", "assignTagRequest"); + if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "unpublishMetadata", "unpublishMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/unassign"; + const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23573,30 +25436,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Name or Id of the tag. - * @param updateTagRequest + * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups + * @param updateColumnSecurityRulesRequest */ - updateTag(tagIdentifier, updateTagRequest, _options) { + updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("TagsApi", "updateTag", "tagIdentifier"); - } - if (updateTagRequest === null || updateTagRequest === void 0) { - throw new RequiredError("TagsApi", "updateTag", "updateTagRequest"); + if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { + throw new RequiredError("SecurityApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/security/column/rules/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23613,15 +25473,15 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var TagsApiResponseProcessor = class { +var SecurityApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignTag + * @params response Response returned by the server for a request to assignChangeAuthor * @throws ApiException if the response code was not in [200, 299] */ - assignTag(response) { + assignChangeAuthor(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23674,16 +25534,16 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createTag + * @params response Response returned by the server for a request to fetchColumnSecurityRules * @throws ApiException if the response code was not in [200, 299] */ - createTag(response) { + fetchColumnSecurityRules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", + "Array", "" ); return body; @@ -23694,7 +25554,7 @@ var TagsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23710,7 +25570,7 @@ var TagsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23718,12 +25578,12 @@ var TagsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", + "Array", "" ); return body; @@ -23735,14 +25595,19 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteTag + * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals * @throws ApiException if the response code was not in [200, 299] */ - deleteTag(response) { + fetchPermissionsOfPrincipals(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "PermissionOfPrincipalsResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23779,7 +25644,7 @@ var TagsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "PermissionOfPrincipalsResponse", "" ); return body; @@ -23791,16 +25656,16 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchTags + * @params response Response returned by the server for a request to fetchPermissionsOnMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchTags(response) { + fetchPermissionsOnMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "PermissionOfMetadataResponse", "" ); return body; @@ -23840,7 +25705,7 @@ var TagsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "PermissionOfMetadataResponse", "" ); return body; @@ -23852,10 +25717,10 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to unassignTag + * @params response Response returned by the server for a request to publishMetadata * @throws ApiException if the response code was not in [200, 299] */ - unassignTag(response) { + publishMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23908,10 +25773,10 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateTag + * @params response Response returned by the server for a request to shareMetadata * @throws ApiException if the response code was not in [200, 299] */ - updateTag(response) { + shareMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23960,175 +25825,144 @@ var TagsApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/ThoughtSpotRestApi.ts -var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.7.0.cl or later Activates a deactivated user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To activate an inactive user account, the API request body must include the following information: - Username or the GUID of the user account. - Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated. - Password for the user account. - * @param activateUserRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to unpublishMetadata + * @throws ApiException if the response code was not in [200, 299] */ - activateUser(activateUserRequest, _options) { + unpublishMetadata(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (activateUserRequest === null || activateUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "activateUser", "activateUserRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/users/activate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(activateUserRequest, "ActivateUserRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. - * @param assignChangeAuthorRequest - */ - assignChangeAuthor(assignChangeAuthorRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "assignChangeAuthor", "assignChangeAuthorRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/security/metadata/assign"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. - * @param assignTagRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateColumnSecurityRules + * @throws ApiException if the response code was not in [200, 299] */ - assignTag(assignTagRequest, _options) { + updateColumnSecurityRules(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "assignTag", "assignTagRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/tags/assign"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Bad request - Invalid parameters or table not found", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Updates the current password of the user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param changeUserPasswordRequest - */ - changeUserPassword(changeUserPasswordRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (changeUserPasswordRequest === null || changeUserPasswordRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "changeUserPassword", "changeUserPasswordRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to modify security rules for this table", body, response.headers); } - const localVarPath = "/api/rest/2.0/users/change-password"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(changeUserPasswordRequest, "ChangeUserPasswordRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/SystemApi.ts +var SystemApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.2.0.cl or later Commits TML files of metadata objects to the Git branch configured on your instance. Requires at least edit access to objects used in the commit operation. Before using this endpoint to push your commits: * Enable Git integration on your instance. * Make sure the Git repository and branch details are configured on your instance. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). - * @param commitBranchRequest + * 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. + * @param configureCommunicationChannelPreferencesRequest */ - commitBranch(commitBranchRequest, _options) { + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (commitBranchRequest === null || commitBranchRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "commitBranch", "commitBranchRequest"); + if (configureCommunicationChannelPreferencesRequest === null || configureCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("SystemApi", "configureCommunicationChannelPreferences", "configureCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/branches/commit"; + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/configure"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(commitBranchRequest, "CommitBranchRequest", ""), + ObjectSerializer.serialize(configureCommunicationChannelPreferencesRequest, "ConfigureCommunicationChannelPreferencesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24145,29 +25979,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. - * @param connectionConfigurationSearchRequest + * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ - connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { + getSystemConfig(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); - } - const localVarPath = "/api/rest/2.0/connection-configurations/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/system/config"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24181,29 +26003,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` - * @param convertWorksheetToModelRequest + * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ - convertWorksheetToModel(convertWorksheetToModelRequest, _options) { + getSystemInformation(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/system"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24217,29 +26027,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. - * @param copyObjectRequest + * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. */ - copyObject(copyObjectRequest, _options) { + getSystemOverrideInfo(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (copyObjectRequest === null || copyObjectRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "copyObject", "copyObjectRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/copyobject"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/system/config-overrides"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24253,26 +26051,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` - * @param createCalendarRequest + * 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. + * @param searchCommunicationChannelPreferencesRequest */ - createCalendar(createCalendarRequest, _options) { + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createCalendarRequest === null || createCalendarRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createCalendar", "createCalendarRequest"); + if (searchCommunicationChannelPreferencesRequest === null || searchCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("SystemApi", "searchCommunicationChannelPreferences", "searchCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/calendars/create"; + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), + ObjectSerializer.serialize(searchCommunicationChannelPreferencesRequest, "SearchCommunicationChannelPreferencesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24289,26 +26088,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Allows you to connect a ThoughtSpot instance to a Git repository. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. You can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository. Before using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites: * You have a Git repository. If you are using GitHub, make sure you have a valid account and an access token to connect ThoughtSpot to GitHub. For information about generating a token, see [GitHub Documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). * Your access token has `repo` scope that grants full access to public and private repositories. * Your Git repository has a branch that can be configured as a default branch in ThoughtSpot. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration). **Note**: ThoughtSpot supports only GitHub / itHub Enterprise for CI/CD. - * @param createConfigRequest + * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. + * @param updateSystemConfigRequest */ - createConfig(createConfigRequest, _options) { + updateSystemConfig(updateSystemConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createConfigRequest === null || createConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConfig", "createConfigRequest"); + if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { + throw new RequiredError("SystemApi", "updateSystemConfig", "updateSystemConfigRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/config/create"; + const localVarPath = "/api/rest/2.0/system/config-update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConfigRequest, "CreateConfigRequest", ""), + ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24324,279 +26124,390 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var SystemApiResponseProcessor = class { /** - * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. - * @param createConnectionRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] */ - createConnection(createConnectionRequest, _options) { + configureCommunicationChannelPreferences(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConnectionRequest === null || createConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConnection", "createConnectionRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/connection/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. - * @param createConnectionConfigurationRequest - */ - createConnectionConfiguration(createConnectionConfigurationRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/connection-configurations/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * 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 + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSystemConfig + * @throws ApiException if the response code was not in [200, 299] */ - createConversation(createConversationRequest, _options) { + getSystemConfig(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConversationRequest === null || createConversationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConversation", "createConversationRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemConfig", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/ai/conversation/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConversationRequest, "CreateConversationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param createCustomActionRequest - */ - createCustomAction(createCustomActionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createCustomActionRequest === null || createCustomActionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createCustomAction", "createCustomActionRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/customization/custom-actions"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemConfig", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param createEmailCustomizationRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSystemInformation + * @throws ApiException if the response code was not in [200, 299] */ - createEmailCustomization(createEmailCustomizationRequest, _options) { + getSystemInformation(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createEmailCustomization", "createEmailCustomizationRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemInfo", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/customization/email"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemInfo", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param createOrgRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSystemOverrideInfo + * @throws ApiException if the response code was not in [200, 299] */ - createOrg(createOrgRequest, _options) { + getSystemOverrideInfo(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createOrgRequest === null || createOrgRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createOrg", "createOrgRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemOverrideInfo", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/orgs/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemOverrideInfo", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param createRoleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] */ - createRole(createRoleRequest, _options) { + searchCommunicationChannelPreferences(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createRoleRequest === null || createRoleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createRole", "createRoleRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommunicationChannelPreferencesResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/roles/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommunicationChannelPreferencesResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). - * @param createScheduleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateSystemConfig + * @throws ApiException if the response code was not in [200, 299] */ - createSchedule(createScheduleRequest, _options) { + updateSystemConfig(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/TagsApi.ts +var TagsApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. + * @param assignTagRequest + */ + assignTag(assignTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createScheduleRequest === null || createScheduleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createSchedule", "createScheduleRequest"); + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("TagsApi", "assignTag", "assignTagRequest"); } - const localVarPath = "/api/rest/2.0/schedules/create"; + const localVarPath = "/api/rest/2.0/tags/assign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24621,12 +26532,13 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { var _a, _b, _c; let _config = _options || this.configuration; if (createTagRequest === null || createTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createTag", "createTagRequest"); + throw new RequiredError("TagsApi", "createTag", "createTagRequest"); } const localVarPath = "/api/rest/2.0/tags/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -24649,29 +26561,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a user in ThoughtSpot. The API endpoint allows you to configure several user properties such as email address, account status, share notification preferences, and sharing visibility. You can provision the user to [groups](https://docs.thoughtspot.com/cloud/latest/groups-privileges) and [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview). You can also add Liveboard, Answer, and Worksheet objects to the user’s favorites list, assign a default Liveboard for the user, and set user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param createUserRequest + * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Tag identifier Tag name or Tag id. */ - createUser(createUserRequest, _options) { + deleteTag(tagIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createUserRequest === null || createUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createUser", "createUserRequest"); + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("TagsApi", "deleteTag", "tagIdentifier"); } - const localVarPath = "/api/rest/2.0/users/create"; + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createUserRequest, "CreateUserRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24685,26 +26589,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard - * @param createUserGroupRequest + * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. + * @param searchTagsRequest */ - createUserGroup(createUserGroupRequest, _options) { + searchTags(searchTagsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createUserGroupRequest === null || createUserGroupRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createUserGroup", "createUserGroupRequest"); + if (searchTagsRequest === null || searchTagsRequest === void 0) { + throw new RequiredError("TagsApi", "searchTags", "searchTagsRequest"); } - const localVarPath = "/api/rest/2.0/groups/create"; + const localVarPath = "/api/rest/2.0/tags/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), + ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24721,26 +26626,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. 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 operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid - * @param createVariableRequest + * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. + * @param assignTagRequest */ - createVariable(createVariableRequest, _options) { + unassignTag(assignTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createVariableRequest === null || createVariableRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createVariable", "createVariableRequest"); + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("TagsApi", "unassignTag", "assignTagRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/create"; + const localVarPath = "/api/rest/2.0/tags/unassign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createVariableRequest, "CreateVariableRequest", ""), + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24757,80 +26663,34 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Name or Id of the tag. + * @param updateTagRequest */ - dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + updateTag(tagIdentifier, updateTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionName === null || connectionName === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "connectionName"); + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("TagsApi", "updateTag", "tagIdentifier"); } - if (databaseName === null || databaseName === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "databaseName"); + if (updateTagRequest === null || updateTagRequest === void 0) { + throw new RequiredError("TagsApi", "updateTag", "updateTagRequest"); } - const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24843,169 +26703,380 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var TagsApiResponseProcessor = class { /** - * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param fileContent 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’ + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to assignTag + * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { + assignTag(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" - ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED - * @param fileContent 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’ + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createTag + * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { + createTag(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "dbtConnectionIdentifier"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Tag", + "" + ); + return body; } - if (importWorksheets === null || importWorksheets === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "importWorksheets"); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const localVarPath = "/api/rest/2.0/dbt/generate-tml"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" - ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - if (modelTables !== void 0) { - localVarFormParams.append("model_tables", modelTables); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - if (importWorksheets !== void 0) { - localVarFormParams.append("import_worksheets", importWorksheets); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Tag", + "" + ); + return body; } - if (worksheets !== void 0) { - localVarFormParams.append("worksheets", worksheets); + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteTag + * @throws ApiException if the response code was not in [200, 299] + */ + deleteTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - return requestContext; + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchTags + * @throws ApiException if the response code was not in [200, 299] */ - dbtSearch(_options) { + searchTags(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/dbt/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - return requestContext; + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.7.0.cl or later Deactivates a user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To deactivate a user account, the API request body must include the following information: - Username or the GUID of the user account - Base URL of the ThoughtSpot instance If the API request is successful, ThoughtSpot returns the activation URL in the response. The activation URL is valid for 14 days and can be used to re-activate the account and reset the password of the deactivated account. - * @param deactivateUserRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to unassignTag + * @throws ApiException if the response code was not in [200, 299] */ - deactivateUser(deactivateUserRequest, _options) { + unassignTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateTag + * @throws ApiException if the response code was not in [200, 299] + */ + updateTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/ThoughtSpotRestApi.ts +var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.7.0.cl or later Activates a deactivated user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To activate an inactive user account, the API request body must include the following information: - Username or the GUID of the user account. - Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated. - Password for the user account. + * @param activateUserRequest + */ + activateUser(activateUserRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deactivateUserRequest === null || deactivateUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deactivateUser", "deactivateUserRequest"); + if (activateUserRequest === null || activateUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "activateUser", "activateUserRequest"); } - const localVarPath = "/api/rest/2.0/users/deactivate"; + const localVarPath = "/api/rest/2.0/users/activate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deactivateUserRequest, "DeactivateUserRequest", ""), + ObjectSerializer.serialize(activateUserRequest, "ActivateUserRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25022,20 +27093,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. - * @param calendarIdentifier Unique ID or name of the Calendar. + * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. + * @param assignChangeAuthorRequest */ - deleteCalendar(calendarIdentifier, _options) { + assignChangeAuthor(assignChangeAuthorRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteCalendar", "calendarIdentifier"); + if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "assignChangeAuthor", "assignChangeAuthorRequest"); } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const localVarPath = "/api/rest/2.0/security/metadata/assign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25049,26 +27130,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Deletes Git repository configuration from your ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. - * @param deleteConfigRequest + * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. + * @param assignTagRequest */ - deleteConfig(deleteConfigRequest, _options) { + assignTag(assignTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConfigRequest === null || deleteConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConfig", "deleteConfigRequest"); + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "assignTag", "assignTagRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/config/delete"; + const localVarPath = "/api/rest/2.0/tags/assign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConfigRequest, "DeleteConfigRequest", ""), + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25085,26 +27167,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. - * @param deleteConnectionRequest + * Version: 9.0.0.cl or later Updates the current password of the user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param changeUserPasswordRequest */ - deleteConnection(deleteConnectionRequest, _options) { + changeUserPassword(changeUserPasswordRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConnection", "deleteConnectionRequest"); + if (changeUserPasswordRequest === null || changeUserPasswordRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "changeUserPassword", "changeUserPasswordRequest"); } - const localVarPath = "/api/rest/2.0/connection/delete"; + const localVarPath = "/api/rest/2.0/users/change-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), + ObjectSerializer.serialize(changeUserPasswordRequest, "ChangeUserPasswordRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25121,26 +27204,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - * @param deleteConnectionConfigurationRequest + * Version: 9.2.0.cl or later Commits TML files of metadata objects to the Git branch configured on your instance. Requires at least edit access to objects used in the commit operation. Before using this endpoint to push your commits: * Enable Git integration on your instance. * Make sure the Git repository and branch details are configured on your instance. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). + * @param commitBranchRequest */ - deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { + commitBranch(commitBranchRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); + if (commitBranchRequest === null || commitBranchRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "commitBranch", "commitBranchRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/delete"; + const localVarPath = "/api/rest/2.0/vcs/git/branches/commit"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(commitBranchRequest, "CommitBranchRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25157,20 +27241,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. - * @param connectionIdentifier Unique ID or name of the connection. + * 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. + * @param configureCommunicationChannelPreferencesRequest */ - deleteConnectionV2(connectionIdentifier, _options) { + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionV2", "connectionIdentifier"); + if (configureCommunicationChannelPreferencesRequest === null || configureCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "configureCommunicationChannelPreferences", "configureCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/configure"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(configureCommunicationChannelPreferencesRequest, "ConfigureCommunicationChannelPreferencesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25184,20 +27278,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param customActionIdentifier Unique ID or name of the custom action. + * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. + * @param connectionConfigurationSearchRequest */ - deleteCustomAction(customActionIdentifier, _options) { + connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteCustomAction", "customActionIdentifier"); + if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/connection-configurations/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25211,20 +27315,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` + * @param convertWorksheetToModelRequest */ - deleteDbtConnection(dbtConnectionIdentifier, _options) { + convertWorksheetToModel(convertWorksheetToModelRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteDbtConnection", "dbtConnectionIdentifier"); + if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); } - const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25238,20 +27352,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. - * @param templateIdentifier Unique ID or name of the email customization. + * 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. + * @param copyObjectRequest */ - deleteEmailCustomization(templateIdentifier, _options) { + copyObject(copyObjectRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (templateIdentifier === null || templateIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteEmailCustomization", "templateIdentifier"); + if (copyObjectRequest === null || copyObjectRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "copyObject", "copyObjectRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/copyobject"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25265,26 +27389,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. - * @param deleteMetadataRequest + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest */ - deleteMetadata(deleteMetadataRequest, _options) { + createAgentConversation(createAgentConversationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteMetadata", "deleteMetadataRequest"); + if (createAgentConversationRequest === null || createAgentConversationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createAgentConversation", "createAgentConversationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/delete"; + const localVarPath = "/api/rest/2.0/ai/agent/conversation/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), + ObjectSerializer.serialize(createAgentConversationRequest, "CreateAgentConversationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25301,20 +27426,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. - * @param orgIdentifier ID or name of the Org + * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` + * @param createCalendarRequest */ - deleteOrg(orgIdentifier, _options) { + createCalendar(createCalendarRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteOrg", "orgIdentifier"); + if (createCalendarRequest === null || createCalendarRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createCalendar", "createCalendarRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/calendars/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25328,26 +27463,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. - * @param deleteOrgEmailCustomizationRequest + * Version: 9.2.0.cl or later Allows you to connect a ThoughtSpot instance to a Git repository. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. You can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository. Before using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites: * You have a Git repository. If you are using GitHub, make sure you have a valid account and an access token to connect ThoughtSpot to GitHub. For information about generating a token, see [GitHub Documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). * Your access token has `repo` scope that grants full access to public and private repositories. * Your Git repository has a branch that can be configured as a default branch in ThoughtSpot. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration). **Note**: ThoughtSpot supports only GitHub / itHub Enterprise for CI/CD. + * @param createConfigRequest */ - deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { + createConfig(createConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); + if (createConfigRequest === null || createConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConfig", "createConfigRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/delete"; + const localVarPath = "/api/rest/2.0/vcs/git/config/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), + ObjectSerializer.serialize(createConfigRequest, "CreateConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25364,20 +27500,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. + * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. + * @param createConnectionRequest */ - deleteRole(roleIdentifier, _options) { + createConnection(createConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteRole", "roleIdentifier"); + if (createConnectionRequest === null || createConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConnection", "createConnectionRequest"); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const localVarPath = "/api/rest/2.0/connection/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25391,20 +27537,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. - * @param scheduleIdentifier Unique ID or name of the scheduled job. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. + * @param createConnectionConfigurationRequest */ - deleteSchedule(scheduleIdentifier, _options) { + createConnectionConfiguration(createConnectionConfigurationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteSchedule", "scheduleIdentifier"); + if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/connection-configurations/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25418,20 +27574,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Tag identifier Tag name or Tag id. + * 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 */ - deleteTag(tagIdentifier, _options) { + createConversation(createConversationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteTag", "tagIdentifier"); + if (createConversationRequest === null || createConversationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConversation", "createConversationRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/ai/conversation/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConversationRequest, "CreateConversationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25445,20 +27611,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes a user from the ThoughtSpot system. If you want to remove a user from a specific Org but not from ThoughtSpot, update the group and Org mapping properties of the user object via a POST API call to the [/api/rest/2.0/users/{user_identifier}/update](#/http/api-endpoints/users/update-user) endpoint. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param userIdentifier GUID / name of the user + * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param createCustomActionRequest */ - deleteUser(userIdentifier, _options) { + createCustomAction(createCustomActionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (userIdentifier === null || userIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteUser", "userIdentifier"); + if (createCustomActionRequest === null || createCustomActionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createCustomAction", "createCustomActionRequest"); } - const localVarPath = "/api/rest/2.0/users/{user_identifier}/delete".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); + const localVarPath = "/api/rest/2.0/customization/custom-actions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25472,20 +27648,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. - * @param groupIdentifier GUID or name of the group. + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param createEmailCustomizationRequest */ - deleteUserGroup(groupIdentifier, _options) { + createEmailCustomization(createEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteUserGroup", "groupIdentifier"); + if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createEmailCustomization", "createEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); + const localVarPath = "/api/rest/2.0/customization/email"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25499,20 +27685,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 - * @param identifier Unique id or name of the variable + * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param createOrgRequest */ - deleteVariable(identifier, _options) { + createOrg(createOrgRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (identifier === null || identifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteVariable", "identifier"); + if (createOrgRequest === null || createOrgRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createOrg", "createOrgRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/{identifier}/delete".replace("{identifier}", encodeURIComponent(String(identifier))); + const localVarPath = "/api/rest/2.0/orgs/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25526,26 +27722,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). - * @param deployCommitRequest + * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param createRoleRequest */ - deployCommit(deployCommitRequest, _options) { + createRole(createRoleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deployCommitRequest === null || deployCommitRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deployCommit", "deployCommitRequest"); + if (createRoleRequest === null || createRoleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createRole", "createRoleRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/commits/deploy"; + const localVarPath = "/api/rest/2.0/roles/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deployCommitRequest, "DeployCommitRequest", ""), + ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25562,20 +27759,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection + * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). + * @param createScheduleRequest */ - downloadConnectionMetadataChanges(connectionIdentifier, _options) { + createSchedule(createScheduleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); + if (createScheduleRequest === null || createScheduleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createSchedule", "createScheduleRequest"); } - const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/schedules/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25589,26 +27796,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. - * @param exportAnswerReportRequest + * Version: 9.0.0.cl or later Creates a tag object. Tags 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. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param createTagRequest */ - exportAnswerReport(exportAnswerReportRequest, _options) { + createTag(createTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportAnswerReport", "exportAnswerReportRequest"); + if (createTagRequest === null || createTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createTag", "createTagRequest"); } - const localVarPath = "/api/rest/2.0/report/answer"; + const localVarPath = "/api/rest/2.0/tags/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), + ObjectSerializer.serialize(createTagRequest, "CreateTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25625,26 +27833,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. - * @param exportLiveboardReportRequest + * Version: 9.0.0.cl or later Creates a user in ThoughtSpot. The API endpoint allows you to configure several user properties such as email address, account status, share notification preferences, and sharing visibility. You can provision the user to [groups](https://docs.thoughtspot.com/cloud/latest/groups-privileges) and [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview). You can also add Liveboard, Answer, and Worksheet objects to the user’s favorites list, assign a default Liveboard for the user, and set user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param createUserRequest */ - exportLiveboardReport(exportLiveboardReportRequest, _options) { + createUser(createUserRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportLiveboardReport", "exportLiveboardReportRequest"); + if (createUserRequest === null || createUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createUser", "createUserRequest"); } - const localVarPath = "/api/rest/2.0/report/liveboard"; + const localVarPath = "/api/rest/2.0/users/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), + ObjectSerializer.serialize(createUserRequest, "CreateUserRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25661,26 +27870,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). - * @param exportMetadataTMLRequest + * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard + * @param createUserGroupRequest */ - exportMetadataTML(exportMetadataTMLRequest, _options) { + createUserGroup(createUserGroupRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTML", "exportMetadataTMLRequest"); + if (createUserGroupRequest === null || createUserGroupRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createUserGroup", "createUserGroupRequest"); } - const localVarPath = "/api/rest/2.0/metadata/tml/export"; + const localVarPath = "/api/rest/2.0/groups/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), + ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25697,26 +27907,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. - * @param exportMetadataTMLBatchedRequest + * 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid + * @param createVariableRequest */ - exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { + createVariable(createVariableRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); + if (createVariableRequest === null || createVariableRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createVariable", "createVariableRequest"); } - const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; + const localVarPath = "/api/rest/2.0/template/variables/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), + ObjectSerializer.serialize(createVariableRequest, "CreateVariableRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25733,26 +27944,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). - * @param fetchAnswerDataRequest + * 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. + * @param createWebhookConfigurationRequest */ - fetchAnswerData(fetchAnswerDataRequest, _options) { + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerData", "fetchAnswerDataRequest"); + if (createWebhookConfigurationRequest === null || createWebhookConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createWebhookConfiguration", "createWebhookConfigurationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/answer/data"; + const localVarPath = "/api/rest/2.0/webhooks/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), + ObjectSerializer.serialize(createWebhookConfigurationRequest, "CreateWebhookConfigurationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25769,29 +27981,81 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` - * @param fetchAnswerSqlQueryRequest + * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' */ - fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { + dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); + if (connectionName === null || connectionName === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "connectionName"); } - const localVarPath = "/api/rest/2.0/metadata/answer/sql"; + if (databaseName === null || databaseName === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "databaseName"); + } + const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25805,29 +28069,46 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. - * @param fetchAsyncImportTaskStatusRequest + * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param fileContent 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’ */ - fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { + dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; + const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25841,29 +28122,64 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` - * @param fetchColumnSecurityRulesRequest + * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' + * @param importWorksheets Mention the worksheet tmls to import + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] + * @param fileContent 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’ */ - fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; + if (modelTables === null || modelTables === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "modelTables"); + } + if (importWorksheets === null || importWorksheets === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "importWorksheets"); + } + const localVarPath = "/api/rest/2.0/dbt/generate-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (modelTables !== void 0) { + localVarFormParams.append("model_tables", modelTables); + } + if (importWorksheets !== void 0) { + localVarFormParams.append("import_worksheets", importWorksheets); + } + if (worksheets !== void 0) { + localVarFormParams.append("worksheets", worksheets); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25877,20 +28193,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection + * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ - fetchConnectionDiffStatus(connectionIdentifier, _options) { + dbtSearch(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchConnectionDiffStatus", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/dbt/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25904,26 +28217,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). - * @param fetchLiveboardDataRequest + * Version: 9.7.0.cl or later Deactivates a user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To deactivate a user account, the API request body must include the following information: - Username or the GUID of the user account - Base URL of the ThoughtSpot instance If the API request is successful, ThoughtSpot returns the activation URL in the response. The activation URL is valid for 14 days and can be used to re-activate the account and reset the password of the deactivated account. + * @param deactivateUserRequest */ - fetchLiveboardData(fetchLiveboardDataRequest, _options) { + deactivateUser(deactivateUserRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); + if (deactivateUserRequest === null || deactivateUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deactivateUser", "deactivateUserRequest"); } - const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; + const localVarPath = "/api/rest/2.0/users/deactivate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), + ObjectSerializer.serialize(deactivateUserRequest, "DeactivateUserRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25940,29 +28254,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` - * @param fetchLiveboardSqlQueryRequest + * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. + * @param calendarIdentifier Unique ID or name of the Calendar. */ - fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { + deleteCalendar(calendarIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteCalendar", "calendarIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25976,26 +28282,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). - * @param fetchLogsRequest + * Version: 9.2.0.cl or later Deletes Git repository configuration from your ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. + * @param deleteConfigRequest */ - fetchLogs(fetchLogsRequest, _options) { + deleteConfig(deleteConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLogsRequest === null || fetchLogsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchLogs", "fetchLogsRequest"); + if (deleteConfigRequest === null || deleteConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConfig", "deleteConfigRequest"); } - const localVarPath = "/api/rest/2.0/logs/fetch"; + const localVarPath = "/api/rest/2.0/vcs/git/config/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), + ObjectSerializer.serialize(deleteConfigRequest, "DeleteConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26012,26 +28319,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. - * @param fetchPermissionsOfPrincipalsRequest + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. + * @param deleteConnectionRequest */ - fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { + deleteConnection(deleteConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); + if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConnection", "deleteConnectionRequest"); } - const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; + const localVarPath = "/api/rest/2.0/connection/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), + ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26048,26 +28356,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. - * @param fetchPermissionsOnMetadataRequest + * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. + * @param deleteConnectionConfigurationRequest */ - fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { + deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); + if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; + const localVarPath = "/api/rest/2.0/connection-configurations/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), + ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26084,29 +28393,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Enforces logout on current user sessions. Use this API with caution as it may invalidate active user sessions and force users to re-login. Make sure you specify the usernames or GUIDs. If you pass null values in the API call, all user sessions on your cluster become invalid, and the users are forced to re-login. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param forceLogoutUsersRequest + * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. + * @param connectionIdentifier Unique ID or name of the connection. */ - forceLogoutUsers(forceLogoutUsersRequest, _options) { + deleteConnectionV2(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (forceLogoutUsersRequest === null || forceLogoutUsersRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "forceLogoutUsers", "forceLogoutUsersRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionV2", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/users/force-logout"; + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(forceLogoutUsersRequest, "ForceLogoutUsersRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26120,29 +28421,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. - * @param generateCSVRequest + * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param customActionIdentifier Unique ID or name of the custom action. */ - generateCSV(generateCSVRequest, _options) { + deleteCustomAction(customActionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (generateCSVRequest === null || generateCSVRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "generateCSV", "generateCSVRequest"); + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteCustomAction", "customActionIdentifier"); } - const localVarPath = "/api/rest/2.0/calendars/generate-csv"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26156,16 +28449,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. + * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. */ - getCurrentUserInfo(_options) { + deleteDbtConnection(dbtConnectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/user"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteDbtConnection", "dbtConnectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26179,16 +28477,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request + * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. + * @param templateIdentifier Unique ID or name of the email customization. */ - getCurrentUserToken(_options) { + deleteEmailCustomization(templateIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/token"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (templateIdentifier === null || templateIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteEmailCustomization", "templateIdentifier"); + } + const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26202,29 +28505,35 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. - * @param getCustomAccessTokenRequest + * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. + * @param deleteMetadataRequest */ - getCustomAccessToken(getCustomAccessTokenRequest, _options) { + deleteMetadata(deleteMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); + if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteMetadata", "deleteMetadataRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/custom"; + const localVarPath = "/api/rest/2.0/metadata/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), + ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -26233,29 +28542,26 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getFullAccessTokenRequest + * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. + * @param orgIdentifier ID or name of the Org */ - getFullAccessToken(getFullAccessTokenRequest, _options) { + deleteOrg(orgIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "getFullAccessToken", "getFullAccessTokenRequest"); + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteOrg", "orgIdentifier"); } - const localVarPath = "/api/rest/2.0/auth/token/full"; + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -26264,29 +28570,35 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getObjectAccessTokenRequest + * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. + * @param deleteOrgEmailCustomizationRequest */ - getObjectAccessToken(getObjectAccessTokenRequest, _options) { + deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); + if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/object"; + const localVarPath = "/api/rest/2.0/customization/email/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -26295,16 +28607,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. */ - getSystemConfig(_options) { + deleteRole(roleIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteRole", "roleIdentifier"); + } + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26318,16 +28635,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. + * @param scheduleIdentifier Unique ID or name of the scheduled job. */ - getSystemInformation(_options) { + deleteSchedule(scheduleIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteSchedule", "scheduleIdentifier"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26341,16 +28663,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. + * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Tag identifier Tag name or Tag id. */ - getSystemOverrideInfo(_options) { + deleteTag(tagIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config-overrides"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteTag", "tagIdentifier"); + } + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26364,29 +28691,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). - * @param importMetadataTMLRequest + * Version: 9.0.0.cl or later Deletes a user from the ThoughtSpot system. If you want to remove a user from a specific Org but not from ThoughtSpot, update the group and Org mapping properties of the user object via a POST API call to the [/api/rest/2.0/users/{user_identifier}/update](#/http/api-endpoints/users/update-user) endpoint. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param userIdentifier GUID / name of the user */ - importMetadataTML(importMetadataTMLRequest, _options) { + deleteUser(userIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importMetadataTML", "importMetadataTMLRequest"); + if (userIdentifier === null || userIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteUser", "userIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/tml/import"; + const localVarPath = "/api/rest/2.0/users/{user_identifier}/delete".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26400,29 +28719,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. - * @param importMetadataTMLAsyncRequest + * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. + * @param groupIdentifier GUID or name of the group. */ - importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { + deleteUserGroup(groupIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteUserGroup", "groupIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26436,29 +28747,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. - * @param importUserGroupsRequest + * 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 + * @param identifier Unique id or name of the variable */ - importUserGroups(importUserGroupsRequest, _options) { + deleteVariable(identifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importUserGroups", "importUserGroupsRequest"); + if (identifier === null || identifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteVariable", "identifier"); } - const localVarPath = "/api/rest/2.0/groups/import"; + const localVarPath = "/api/rest/2.0/template/variables/{identifier}/delete".replace("{identifier}", encodeURIComponent(String(identifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26472,26 +28775,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Imports user data from external databases into ThoughtSpot. During the user import operation: * If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. Defining a `default_password` in the API request is optional. * If `delete_unspecified_users` is set to `true`, the users not specified in the API request, excluding the `tsadmin`, `guest`, `system` and `su` users, are deleted. * If the specified user objects are already available in ThoughtSpot, the object properties are updated and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param importUsersRequest + * 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. + * @param deleteWebhookConfigurationsRequest */ - importUsers(importUsersRequest, _options) { + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importUsersRequest === null || importUsersRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importUsers", "importUsersRequest"); + if (deleteWebhookConfigurationsRequest === null || deleteWebhookConfigurationsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteWebhookConfigurations", "deleteWebhookConfigurationsRequest"); } - const localVarPath = "/api/rest/2.0/users/import"; + const localVarPath = "/api/rest/2.0/webhooks/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importUsersRequest, "ImportUsersRequest", ""), + ObjectSerializer.serialize(deleteWebhookConfigurationsRequest, "DeleteWebhookConfigurationsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26508,26 +28812,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. - * @param loginRequest + * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). + * @param deployCommitRequest */ - login(loginRequest, _options) { + deployCommit(deployCommitRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (loginRequest === null || loginRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "login", "loginRequest"); + if (deployCommitRequest === null || deployCommitRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deployCommit", "deployCommitRequest"); } - const localVarPath = "/api/rest/2.0/auth/session/login"; + const localVarPath = "/api/rest/2.0/vcs/git/commits/deploy"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), + ObjectSerializer.serialize(deployCommitRequest, "DeployCommitRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26544,16 +28849,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Logs out a user from their current session. + * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - logout(_options) { + downloadConnectionMetadataChanges(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/logout"; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26567,26 +28877,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. - * @param parameterizeMetadataRequest + * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. + * @param exportAnswerReportRequest */ - parameterizeMetadata(parameterizeMetadataRequest, _options) { + exportAnswerReport(exportAnswerReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "parameterizeMetadata", "parameterizeMetadataRequest"); + if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportAnswerReport", "exportAnswerReportRequest"); } - const localVarPath = "/api/rest/2.0/metadata/parameterize"; + const localVarPath = "/api/rest/2.0/report/answer"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), + ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26603,26 +28914,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. - * @param publishMetadataRequest + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. + * @param exportLiveboardReportRequest */ - publishMetadata(publishMetadataRequest, _options) { + exportLiveboardReport(exportLiveboardReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (publishMetadataRequest === null || publishMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "publishMetadata", "publishMetadataRequest"); + if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportLiveboardReport", "exportLiveboardReportRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/publish"; + const localVarPath = "/api/rest/2.0/report/liveboard"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), + ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26639,26 +28951,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.7.0.cl or later - * @param queryGetDecomposedQueryRequest + * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). + * @param exportMetadataTMLRequest */ - queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { + exportMetadataTML(exportMetadataTMLRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); + if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTML", "exportMetadataTMLRequest"); } - const localVarPath = "/api/rest/2.0/ai/analytical-questions"; + const localVarPath = "/api/rest/2.0/metadata/tml/export"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), + ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26675,26 +28988,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Resets the password of a user account. Administrators can reset password on behalf of a user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param resetUserPasswordRequest + * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. + * @param exportMetadataTMLBatchedRequest */ - resetUserPassword(resetUserPasswordRequest, _options) { + exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (resetUserPasswordRequest === null || resetUserPasswordRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "resetUserPassword", "resetUserPasswordRequest"); + if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); } - const localVarPath = "/api/rest/2.0/users/reset-password"; + const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(resetUserPasswordRequest, "ResetUserPasswordRequest", ""), + ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26711,30 +29025,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Reverts TML objects to a previous commit specified in the API request. Requires at least edit access to objects. In the API request, specify the `commit_id`. If the branch name is not specified in the request, the API will consider the default branch configured on your instance. By default, the API reverts all objects. If the revert operation fails for one of the objects provided in the commit, the API returns an error and does not revert any object. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). - * @param commitId Commit id to which the object should be reverted - * @param revertCommitRequest + * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). + * @param fetchAnswerDataRequest */ - revertCommit(commitId, revertCommitRequest, _options) { + fetchAnswerData(fetchAnswerDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (commitId === null || commitId === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "commitId"); - } - if (revertCommitRequest === null || revertCommitRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "revertCommitRequest"); + if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerData", "fetchAnswerDataRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/commits/{commit_id}/revert".replace("{commit_id}", encodeURIComponent(String(commitId))); + const localVarPath = "/api/rest/2.0/metadata/answer/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(revertCommitRequest, "RevertCommitRequest", ""), + ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26751,26 +29062,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). - * @param revokeTokenRequest + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` + * @param fetchAnswerSqlQueryRequest */ - revokeToken(revokeTokenRequest, _options) { + fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (revokeTokenRequest === null || revokeTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "revokeToken", "revokeTokenRequest"); + if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/revoke"; + const localVarPath = "/api/rest/2.0/metadata/answer/sql"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), + ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26787,26 +29099,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. - * @param searchCalendarsRequest + * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. + * @param fetchAsyncImportTaskStatusRequest */ - searchCalendars(searchCalendarsRequest, _options) { + fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchCalendars", "searchCalendarsRequest"); + if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); } - const localVarPath = "/api/rest/2.0/calendars/search"; + const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), + ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26823,26 +29136,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets a list of commits for a given metadata object. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. - * @param searchCommitsRequest + * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` + * @param fetchColumnSecurityRulesRequest */ - searchCommits(searchCommitsRequest, _options) { + fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCommitsRequest === null || searchCommitsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchCommits", "searchCommitsRequest"); + if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/commits/search"; + const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCommitsRequest, "SearchCommitsRequest", ""), + ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26859,29 +29173,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. - * @param searchConfigRequest + * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - searchConfig(searchConfigRequest, _options) { + fetchConnectionDiffStatus(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchConfigRequest === null || searchConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchConfig", "searchConfigRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchConnectionDiffStatus", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/vcs/git/config/search"; + const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchConfigRequest, "SearchConfigRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26895,26 +29201,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. - * @param searchConnectionRequest + * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). + * @param fetchLiveboardDataRequest */ - searchConnection(searchConnectionRequest, _options) { + fetchLiveboardData(fetchLiveboardDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchConnectionRequest === null || searchConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchConnection", "searchConnectionRequest"); + if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); } - const localVarPath = "/api/rest/2.0/connection/search"; + const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), + ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26931,26 +29238,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param searchCustomActionsRequest + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` + * @param fetchLiveboardSqlQueryRequest */ - searchCustomActions(searchCustomActionsRequest, _options) { + fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchCustomActions", "searchCustomActionsRequest"); + if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; + const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), + ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26967,26 +29275,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). - * @param searchDataRequest + * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). + * @param fetchLogsRequest */ - searchData(searchDataRequest, _options) { + fetchLogs(fetchLogsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchDataRequest === null || searchDataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchData", "searchDataRequest"); + if (fetchLogsRequest === null || fetchLogsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchLogs", "fetchLogsRequest"); } - const localVarPath = "/api/rest/2.0/searchdata"; + const localVarPath = "/api/rest/2.0/logs/fetch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), + ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27003,26 +29312,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. - * @param searchEmailCustomizationRequest + * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. + * @param fetchPermissionsOfPrincipalsRequest */ - searchEmailCustomization(searchEmailCustomizationRequest, _options) { + fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); + if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/search"; + const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27039,26 +29349,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. - * @param searchMetadataRequest + * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. + * @param fetchPermissionsOnMetadataRequest */ - searchMetadata(searchMetadataRequest, _options) { + fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchMetadataRequest === null || searchMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchMetadata", "searchMetadataRequest"); + if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); } - const localVarPath = "/api/rest/2.0/metadata/search"; + const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27075,26 +29386,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param searchOrgsRequest + * Version: 9.0.0.cl or later Enforces logout on current user sessions. Use this API with caution as it may invalidate active user sessions and force users to re-login. Make sure you specify the usernames or GUIDs. If you pass null values in the API call, all user sessions on your cluster become invalid, and the users are forced to re-login. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param forceLogoutUsersRequest */ - searchOrgs(searchOrgsRequest, _options) { + forceLogoutUsers(forceLogoutUsersRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchOrgsRequest === null || searchOrgsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchOrgs", "searchOrgsRequest"); + if (forceLogoutUsersRequest === null || forceLogoutUsersRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "forceLogoutUsers", "forceLogoutUsersRequest"); } - const localVarPath = "/api/rest/2.0/orgs/search"; + const localVarPath = "/api/rest/2.0/users/force-logout"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), + ObjectSerializer.serialize(forceLogoutUsersRequest, "ForceLogoutUsersRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27111,26 +29423,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. - * @param searchRolesRequest + * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. + * @param generateCSVRequest */ - searchRoles(searchRolesRequest, _options) { + generateCSV(generateCSVRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchRolesRequest === null || searchRolesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchRoles", "searchRolesRequest"); + if (generateCSVRequest === null || generateCSVRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "generateCSV", "generateCSVRequest"); } - const localVarPath = "/api/rest/2.0/roles/search"; + const localVarPath = "/api/rest/2.0/calendars/generate-csv"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), + ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27147,29 +29460,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. - * @param searchSchedulesRequest + * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. */ - searchSchedules(searchSchedulesRequest, _options) { + getCurrentUserInfo(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchSchedules", "searchSchedulesRequest"); - } - const localVarPath = "/api/rest/2.0/schedules/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/auth/session/user"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -27183,29 +29484,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. - * @param searchTagsRequest + * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request */ - searchTags(searchTagsRequest, _options) { + getCurrentUserToken(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchTagsRequest === null || searchTagsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchTags", "searchTagsRequest"); - } - const localVarPath = "/api/rest/2.0/tags/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/auth/session/token"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -27219,34 +29508,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. - * @param searchUserGroupsRequest + * 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. + * @param getCustomAccessTokenRequest */ - searchUserGroups(searchUserGroupsRequest, _options) { + getCustomAccessToken(getCustomAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchUserGroups", "searchUserGroupsRequest"); + if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/groups/search"; + const localVarPath = "/api/rest/2.0/auth/token/custom"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), + ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -27255,26 +29540,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of users available on the ThoughtSpot system. To get details of a specific user, specify the user GUID or name. You can also filter the API response based on groups, Org ID, user visibility, account status, user type, and user preference settings and favorites. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available users, set `record_size` to `-1`. - * @param searchUsersRequest + * 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 */ - searchUsers(searchUsersRequest, _options) { + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchUsersRequest === null || searchUsersRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchUsers", "searchUsersRequest"); + if (getDataSourceSuggestionsRequest === null || getDataSourceSuggestionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getDataSourceSuggestions", "getDataSourceSuggestionsRequest"); } - const localVarPath = "/api/rest/2.0/users/search"; + const localVarPath = "/api/rest/2.0/ai/data-source-suggestions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchUsersRequest, "SearchUsersRequest", ""), + ObjectSerializer.serialize(getDataSourceSuggestionsRequest, "GetDataSourceSuggestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27291,34 +29577,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 - * @param searchVariablesRequest + * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getFullAccessTokenRequest */ - searchVariables(searchVariablesRequest, _options) { + getFullAccessToken(getFullAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchVariablesRequest === null || searchVariablesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchVariables", "searchVariablesRequest"); + if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getFullAccessToken", "getFullAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/search"; + const localVarPath = "/api/rest/2.0/auth/token/full"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchVariablesRequest, "SearchVariablesRequest", ""), + ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -27327,30 +29609,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest */ - sendMessage(conversationIdentifier, sendMessageRequest, _options) { + getNLInstructions(getNLInstructionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (conversationIdentifier === null || conversationIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "conversationIdentifier"); - } - if (sendMessageRequest === null || sendMessageRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "sendMessageRequest"); + if (getNLInstructionsRequest === null || getNLInstructionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getNLInstructions", "getNLInstructionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const localVarPath = "/api/rest/2.0/ai/instructions/get"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + ObjectSerializer.serialize(getNLInstructionsRequest, "GetNLInstructionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27367,34 +29646,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. - * @param shareMetadataRequest + * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getObjectAccessTokenRequest */ - shareMetadata(shareMetadataRequest, _options) { + getObjectAccessToken(getObjectAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (shareMetadataRequest === null || shareMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "shareMetadata", "shareMetadataRequest"); + if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/share"; + const localVarPath = "/api/rest/2.0/auth/token/object"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), + ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -27403,26 +29678,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * 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 */ - singleAnswer(singleAnswerRequest, _options) { + getRelevantQuestions(getRelevantQuestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (singleAnswerRequest === null || singleAnswerRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "singleAnswer", "singleAnswerRequest"); + if (getRelevantQuestionsRequest === null || getRelevantQuestionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getRelevantQuestions", "getRelevantQuestionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/answer/create"; + const localVarPath = "/api/rest/2.0/ai/relevant-questions/"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + ObjectSerializer.serialize(getRelevantQuestionsRequest, "GetRelevantQuestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27439,26 +29715,99 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. - * @param assignTagRequest + * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ - unassignTag(assignTagRequest, _options) { + getSystemConfig(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "unassignTag", "assignTagRequest"); + const localVarPath = "/api/rest/2.0/system/config"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/tags/unassign"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + */ + getSystemInformation(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/system"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. + */ + getSystemOverrideInfo(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/system/config-overrides"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). + * @param importMetadataTMLRequest + */ + importMetadataTML(importMetadataTMLRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importMetadataTML", "importMetadataTMLRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/tml/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27475,26 +29824,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. - * @param unparameterizeMetadataRequest + * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. + * @param importMetadataTMLAsyncRequest */ - unparameterizeMetadata(unparameterizeMetadataRequest, _options) { + importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); + if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); } - const localVarPath = "/api/rest/2.0/metadata/unparameterize"; + const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27511,26 +29861,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations - * @param unpublishMetadataRequest + * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. + * @param importUserGroupsRequest */ - unpublishMetadata(unpublishMetadataRequest, _options) { + importUserGroups(importUserGroupsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "unpublishMetadata", "unpublishMetadataRequest"); + if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importUserGroups", "importUserGroupsRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; + const localVarPath = "/api/rest/2.0/groups/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), + ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27547,30 +29898,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` - * @param calendarIdentifier Unique Id or name of the calendar. - * @param updateCalendarRequest + * Version: 9.0.0.cl or later Imports user data from external databases into ThoughtSpot. During the user import operation: * If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. Defining a `default_password` in the API request is optional. * If `delete_unspecified_users` is set to `true`, the users not specified in the API request, excluding the `tsadmin`, `guest`, `system` and `su` users, are deleted. * If the specified user objects are already available in ThoughtSpot, the object properties are updated and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param importUsersRequest */ - updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { + importUsers(importUsersRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "calendarIdentifier"); - } - if (updateCalendarRequest === null || updateCalendarRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "updateCalendarRequest"); + if (importUsersRequest === null || importUsersRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importUsers", "importUsersRequest"); } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const localVarPath = "/api/rest/2.0/users/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), + ObjectSerializer.serialize(importUsersRequest, "ImportUsersRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27587,26 +29935,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups - * @param updateColumnSecurityRulesRequest + * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. + * @param loginRequest */ - updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { + login(loginRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); + if (loginRequest === null || loginRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "login", "loginRequest"); } - const localVarPath = "/api/rest/2.0/security/column/rules/update"; + const localVarPath = "/api/rest/2.0/auth/session/login"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), + ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27623,26 +29972,51 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Updates Git repository configuration settings. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. - * @param updateConfigRequest + * Version: 9.0.0.cl or later Logs out a user from their current session. */ - updateConfig(updateConfigRequest, _options) { + logout(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateConfigRequest === null || updateConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConfig", "updateConfigRequest"); + const localVarPath = "/api/rest/2.0/auth/session/logout"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/vcs/git/config/update"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param parameterizeMetadataRequest + */ + parameterizeMetadata(parameterizeMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "parameterizeMetadata", "parameterizeMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/parameterize"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConfigRequest, "UpdateConfigRequest", ""), + ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27659,26 +30033,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. - * @param updateConnectionRequest + * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. + * @param publishMetadataRequest */ - updateConnection(updateConnectionRequest, _options) { + publishMetadata(publishMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateConnectionRequest === null || updateConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnection", "updateConnectionRequest"); + if (publishMetadataRequest === null || publishMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "publishMetadata", "publishMetadataRequest"); } - const localVarPath = "/api/rest/2.0/connection/update"; + const localVarPath = "/api/rest/2.0/security/metadata/publish"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), + ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27695,30 +30070,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. - * @param configurationIdentifier Unique ID or name of the configuration. - * @param updateConnectionConfigurationRequest + * Version: 10.7.0.cl or later + * @param queryGetDecomposedQueryRequest */ - updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (configurationIdentifier === null || configurationIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "configurationIdentifier"); - } - if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const localVarPath = "/api/rest/2.0/ai/analytical-questions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27735,30 +30107,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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\":[ ] } ``` - * @param connectionIdentifier Unique ID or name of the connection. - * @param updateConnectionV2Request + * Version: 9.0.0.cl or later Resets the password of a user account. Administrators can reset password on behalf of a user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param resetUserPasswordRequest */ - updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { + resetUserPassword(resetUserPasswordRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "connectionIdentifier"); - } - if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "updateConnectionV2Request"); + if (resetUserPasswordRequest === null || resetUserPasswordRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "resetUserPassword", "resetUserPasswordRequest"); } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/users/reset-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), + ObjectSerializer.serialize(resetUserPasswordRequest, "ResetUserPasswordRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27775,30 +30144,31 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param customActionIdentifier Unique ID or name of the custom action. - * @param updateCustomActionRequest + * Version: 9.2.0.cl or later Reverts TML objects to a previous commit specified in the API request. Requires at least edit access to objects. In the API request, specify the `commit_id`. If the branch name is not specified in the request, the API will consider the default branch configured on your instance. By default, the API reverts all objects. If the revert operation fails for one of the objects provided in the commit, the API returns an error and does not revert any object. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). + * @param commitId Commit id to which the object should be reverted + * @param revertCommitRequest */ - updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { + revertCommit(commitId, revertCommitRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "customActionIdentifier"); + if (commitId === null || commitId === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "commitId"); } - if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "updateCustomActionRequest"); + if (revertCommitRequest === null || revertCommitRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "revertCommitRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/vcs/git/commits/{commit_id}/revert".replace("{commit_id}", encodeURIComponent(String(commitId))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), + ObjectSerializer.serialize(revertCommitRequest, "RevertCommitRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27815,81 +30185,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). + * @param revokeTokenRequest */ - updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + revokeToken(revokeTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateDbtConnection", "dbtConnectionIdentifier"); + if (revokeTokenRequest === null || revokeTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "revokeToken", "revokeTokenRequest"); } - const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; + const localVarPath = "/api/rest/2.0/auth/token/revoke"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -27903,26 +30222,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param updateEmailCustomizationRequest + * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. + * @param searchCalendarsRequest */ - updateEmailCustomization(updateEmailCustomizationRequest, _options) { + searchCalendars(searchCalendarsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); + if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCalendars", "searchCalendarsRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/update"; + const localVarPath = "/api/rest/2.0/calendars/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), + ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27939,26 +30259,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` - * @param updateMetadataHeaderRequest + * Version: 9.2.0.cl or later Gets a list of commits for a given metadata object. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. + * @param searchCommitsRequest */ - updateMetadataHeader(updateMetadataHeaderRequest, _options) { + searchCommits(searchCommitsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); + if (searchCommitsRequest === null || searchCommitsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCommits", "searchCommitsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/headers/update"; + const localVarPath = "/api/rest/2.0/vcs/git/commits/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), + ObjectSerializer.serialize(searchCommitsRequest, "SearchCommitsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27975,26 +30296,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` - * @param updateMetadataObjIdRequest + * 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. + * @param searchCommunicationChannelPreferencesRequest */ - updateMetadataObjId(updateMetadataObjIdRequest, _options) { + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); + if (searchCommunicationChannelPreferencesRequest === null || searchCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCommunicationChannelPreferences", "searchCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), + ObjectSerializer.serialize(searchCommunicationChannelPreferencesRequest, "SearchCommunicationChannelPreferencesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28011,30 +30333,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param orgIdentifier ID or name of the Org - * @param updateOrgRequest + * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. + * @param searchConfigRequest */ - updateOrg(orgIdentifier, updateOrgRequest, _options) { + searchConfig(searchConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "orgIdentifier"); - } - if (updateOrgRequest === null || updateOrgRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "updateOrgRequest"); + if (searchConfigRequest === null || searchConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchConfig", "searchConfigRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/vcs/git/config/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), + ObjectSerializer.serialize(searchConfigRequest, "SearchConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28051,30 +30370,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. - * @param updateRoleRequest + * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. + * @param searchConnectionRequest */ - updateRole(roleIdentifier, updateRoleRequest, _options) { + searchConnection(searchConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateRole", "roleIdentifier"); - } - if (updateRoleRequest === null || updateRoleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateRole", "updateRoleRequest"); + if (searchConnectionRequest === null || searchConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchConnection", "searchConnectionRequest"); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const localVarPath = "/api/rest/2.0/connection/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), + ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28091,30 +30407,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. - * @param scheduleIdentifier Unique ID or name of the schedule. - * @param updateScheduleRequest + * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param searchCustomActionsRequest */ - updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + searchCustomActions(searchCustomActionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "scheduleIdentifier"); - } - if (updateScheduleRequest === null || updateScheduleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "updateScheduleRequest"); + if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCustomActions", "searchCustomActionsRequest"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28131,26 +30444,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. - * @param updateSystemConfigRequest + * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). + * @param searchDataRequest */ - updateSystemConfig(updateSystemConfigRequest, _options) { + searchData(searchDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateSystemConfig", "updateSystemConfigRequest"); + if (searchDataRequest === null || searchDataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchData", "searchDataRequest"); } - const localVarPath = "/api/rest/2.0/system/config-update"; + const localVarPath = "/api/rest/2.0/searchdata"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), + ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28167,30 +30481,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Name or Id of the tag. - * @param updateTagRequest + * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * @param searchEmailCustomizationRequest */ - updateTag(tagIdentifier, updateTagRequest, _options) { + searchEmailCustomization(searchEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateTag", "tagIdentifier"); - } - if (updateTagRequest === null || updateTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateTag", "updateTagRequest"); + if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/customization/email/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28207,30 +30518,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates the properties of a user object. You can modify user properties such as username, email, and share notification settings. You can also assign new groups and Orgs, remove the user from a group or Org, reset password, and modify user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param userIdentifier GUID / name of the user - * @param updateUserRequest + * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. + * @param searchMetadataRequest */ - updateUser(userIdentifier, updateUserRequest, _options) { + searchMetadata(searchMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (userIdentifier === null || userIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUser", "userIdentifier"); - } - if (updateUserRequest === null || updateUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUser", "updateUserRequest"); + if (searchMetadataRequest === null || searchMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchMetadata", "searchMetadataRequest"); } - const localVarPath = "/api/rest/2.0/users/{user_identifier}/update".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateUserRequest, "UpdateUserRequest", ""), + ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -28243,236 +30551,2524 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - return requestContext; + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param searchOrgsRequest + */ + searchOrgs(searchOrgsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchOrgsRequest === null || searchOrgsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchOrgs", "searchOrgsRequest"); + } + const localVarPath = "/api/rest/2.0/orgs/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. + * @param searchRolesRequest + */ + searchRoles(searchRolesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchRolesRequest === null || searchRolesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchRoles", "searchRolesRequest"); + } + const localVarPath = "/api/rest/2.0/roles/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. + * @param searchSchedulesRequest + */ + searchSchedules(searchSchedulesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchSchedules", "searchSchedulesRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. + * @param searchTagsRequest + */ + searchTags(searchTagsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchTagsRequest === null || searchTagsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchTags", "searchTagsRequest"); + } + const localVarPath = "/api/rest/2.0/tags/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. + * @param searchUserGroupsRequest + */ + searchUserGroups(searchUserGroupsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchUserGroups", "searchUserGroupsRequest"); + } + const localVarPath = "/api/rest/2.0/groups/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of users available on the ThoughtSpot system. To get details of a specific user, specify the user GUID or name. You can also filter the API response based on groups, Org ID, user visibility, account status, user type, and user preference settings and favorites. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available users, set `record_size` to `-1`. + * @param searchUsersRequest + */ + searchUsers(searchUsersRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchUsersRequest === null || searchUsersRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchUsers", "searchUsersRequest"); + } + const localVarPath = "/api/rest/2.0/users/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchUsersRequest, "SearchUsersRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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 + * @param searchVariablesRequest + */ + searchVariables(searchVariablesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchVariablesRequest === null || searchVariablesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchVariables", "searchVariablesRequest"); + } + const localVarPath = "/api/rest/2.0/template/variables/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchVariablesRequest, "SearchVariablesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchWebhookConfigurationsRequest === null || searchWebhookConfigurationsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchWebhookConfigurations", "searchWebhookConfigurationsRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchWebhookConfigurationsRequest, "SearchWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessage", "conversationIdentifier"); + } + if (sendAgentMessageRequest === null || sendAgentMessageRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessage", "sendAgentMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendAgentMessageRequest, "SendAgentMessageRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (sendAgentMessageStreamingRequest === null || sendAgentMessageStreamingRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessageStreaming", "sendAgentMessageStreamingRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/converse/sse"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendAgentMessageStreamingRequest, "SendAgentMessageStreamingRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest + */ + sendMessage(conversationIdentifier, sendMessageRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "conversationIdentifier"); + } + if (sendMessageRequest === null || sendMessageRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "sendMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (setNLInstructionsRequest === null || setNLInstructionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "setNLInstructions", "setNLInstructionsRequest"); + } + const localVarPath = "/api/rest/2.0/ai/instructions/set"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(setNLInstructionsRequest, "SetNLInstructionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. + * @param shareMetadataRequest + */ + shareMetadata(shareMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (shareMetadataRequest === null || shareMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "shareMetadata", "shareMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/security/metadata/share"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest + */ + singleAnswer(singleAnswerRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (singleAnswerRequest === null || singleAnswerRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "singleAnswer", "singleAnswerRequest"); + } + const localVarPath = "/api/rest/2.0/ai/answer/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. + * @param assignTagRequest + */ + unassignTag(assignTagRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "unassignTag", "assignTagRequest"); + } + const localVarPath = "/api/rest/2.0/tags/unassign"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param unparameterizeMetadataRequest + */ + unparameterizeMetadata(unparameterizeMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/unparameterize"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations + * @param unpublishMetadataRequest + */ + unpublishMetadata(unpublishMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "unpublishMetadata", "unpublishMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` + * @param calendarIdentifier Unique Id or name of the calendar. + * @param updateCalendarRequest + */ + updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "calendarIdentifier"); + } + if (updateCalendarRequest === null || updateCalendarRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "updateCalendarRequest"); + } + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups + * @param updateColumnSecurityRulesRequest + */ + updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); + } + const localVarPath = "/api/rest/2.0/security/column/rules/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Updates Git repository configuration settings. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. + * @param updateConfigRequest + */ + updateConfig(updateConfigRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateConfigRequest === null || updateConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConfig", "updateConfigRequest"); + } + const localVarPath = "/api/rest/2.0/vcs/git/config/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConfigRequest, "UpdateConfigRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. + * @param updateConnectionRequest + */ + updateConnection(updateConnectionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateConnectionRequest === null || updateConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnection", "updateConnectionRequest"); + } + const localVarPath = "/api/rest/2.0/connection/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * @param configurationIdentifier Unique ID or name of the configuration. + * @param updateConnectionConfigurationRequest + */ + updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (configurationIdentifier === null || configurationIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "configurationIdentifier"); + } + if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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\":[ ] } ``` + * @param connectionIdentifier Unique ID or name of the connection. + * @param updateConnectionV2Request + */ + updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "connectionIdentifier"); + } + if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "updateConnectionV2Request"); + } + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param customActionIdentifier Unique ID or name of the custom action. + * @param updateCustomActionRequest + */ + updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "customActionIdentifier"); + } + if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "updateCustomActionRequest"); + } + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + */ + updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateDbtConnection", "dbtConnectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" + ]); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param updateEmailCustomizationRequest + */ + updateEmailCustomization(updateEmailCustomizationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); + } + const localVarPath = "/api/rest/2.0/customization/email/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` + * @param updateMetadataHeaderRequest + */ + updateMetadataHeader(updateMetadataHeaderRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/headers/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` + * @param updateMetadataObjIdRequest + */ + updateMetadataObjId(updateMetadataObjIdRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param orgIdentifier ID or name of the Org + * @param updateOrgRequest + */ + updateOrg(orgIdentifier, updateOrgRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "orgIdentifier"); + } + if (updateOrgRequest === null || updateOrgRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "updateOrgRequest"); + } + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. + * @param updateRoleRequest + */ + updateRole(roleIdentifier, updateRoleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateRole", "roleIdentifier"); + } + if (updateRoleRequest === null || updateRoleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateRole", "updateRoleRequest"); + } + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. + * @param scheduleIdentifier Unique ID or name of the schedule. + * @param updateScheduleRequest + */ + updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "scheduleIdentifier"); + } + if (updateScheduleRequest === null || updateScheduleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "updateScheduleRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. + * @param updateSystemConfigRequest + */ + updateSystemConfig(updateSystemConfigRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateSystemConfig", "updateSystemConfigRequest"); + } + const localVarPath = "/api/rest/2.0/system/config-update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Name or Id of the tag. + * @param updateTagRequest + */ + updateTag(tagIdentifier, updateTagRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateTag", "tagIdentifier"); + } + if (updateTagRequest === null || updateTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateTag", "updateTagRequest"); + } + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates the properties of a user object. You can modify user properties such as username, email, and share notification settings. You can also assign new groups and Orgs, remove the user from a group or Org, reset password, and modify user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param userIdentifier GUID / name of the user + * @param updateUserRequest + */ + updateUser(userIdentifier, updateUserRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (userIdentifier === null || userIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUser", "userIdentifier"); + } + if (updateUserRequest === null || updateUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUser", "updateUserRequest"); + } + const localVarPath = "/api/rest/2.0/users/{user_identifier}/update".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateUserRequest, "UpdateUserRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings + * @param groupIdentifier GUID or name of the group. + * @param updateUserGroupRequest + */ + updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "groupIdentifier"); + } + if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "updateUserGroupRequest"); + } + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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 + * @param identifier Unique id or name of the variable to update. + * @param updateVariableRequest + */ + updateVariable(identifier, updateVariableRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (identifier === null || identifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "identifier"); + } + if (updateVariableRequest === null || updateVariableRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "updateVariableRequest"); + } + const localVarPath = "/api/rest/2.0/template/variables/{identifier}/update".replace("{identifier}", encodeURIComponent(String(identifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateVariableRequest, "UpdateVariableRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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 + * @param updateVariableValuesRequest + */ + updateVariableValues(updateVariableValuesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateVariableValuesRequest === null || updateVariableValuesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateVariableValues", "updateVariableValuesRequest"); + } + const localVarPath = "/api/rest/2.0/template/variables/update-values"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateVariableValuesRequest, "UpdateVariableValuesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (webhookIdentifier === null || webhookIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateWebhookConfiguration", "webhookIdentifier"); + } + if (updateWebhookConfigurationRequest === null || updateWebhookConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateWebhookConfiguration", "updateWebhookConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/{webhook_identifier}/update".replace("{webhook_identifier}", encodeURIComponent(String(webhookIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateWebhookConfigurationRequest, "UpdateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + */ + validateEmailCustomization(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/customization/email/validate"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Validates the content of your source branch against the objects in your destination environment. Before merging content from your source branch to the destination branch, run this API operation from your destination environment and ensure that the changes from the source branch function in the destination environment. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. + * @param validateMergeRequest + */ + validateMerge(validateMergeRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (validateMergeRequest === null || validateMergeRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "validateMerge", "validateMergeRequest"); + } + const localVarPath = "/api/rest/2.0/vcs/git/branches/validate"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(validateMergeRequest, "ValidateMergeRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). + * @param validateTokenRequest + */ + validateToken(validateTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (validateTokenRequest === null || validateTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "validateToken", "validateTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/validate"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var ThoughtSpotRestApiResponseProcessor = class { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to activateUser + * @throws ApiException if the response code was not in [200, 299] + */ + activateUser(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "User", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "User", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to assignChangeAuthor + * @throws ApiException if the response code was not in [200, 299] + */ + assignChangeAuthor(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to assignTag + * @throws ApiException if the response code was not in [200, 299] + */ + assignTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to changeUserPassword + * @throws ApiException if the response code was not in [200, 299] + */ + changeUserPassword(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to commitBranch + * @throws ApiException if the response code was not in [200, 299] + */ + commitBranch(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommitResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommitResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + configureCommunicationChannelPreferences(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to connectionConfigurationSearch + * @throws ApiException if the response code was not in [200, 299] + */ + connectionConfigurationSearch(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to convertWorksheetToModel + * @throws ApiException if the response code was not in [200, 299] + */ + convertWorksheetToModel(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseWorksheetToModelConversion", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseWorksheetToModelConversion", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to copyObject + * @throws ApiException if the response code was not in [200, 299] + */ + copyObject(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseCopyObject", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("404", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseCopyObject", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createAgentConversation(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AgentConversation", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AgentConversation", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AgentConversation", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createCalendar + * @throws ApiException if the response code was not in [200, 299] + */ + createCalendar(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CalendarResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CalendarResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings - * @param groupIdentifier GUID or name of the group. - * @param updateUserGroupRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConfig + * @throws ApiException if the response code was not in [200, 299] */ - updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { + createConfig(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "groupIdentifier"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; } - if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "updateUserGroupRequest"); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * 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 - * @param identifier Unique id or name of the variable to update. - * @param updateVariableRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConnection + * @throws ApiException if the response code was not in [200, 299] */ - updateVariable(identifier, updateVariableRequest, _options) { + createConnection(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (identifier === null || identifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "identifier"); - } - if (updateVariableRequest === null || updateVariableRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "updateVariableRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateConnectionResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/template/variables/{identifier}/update".replace("{identifier}", encodeURIComponent(String(identifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateVariableRequest, "UpdateVariableRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * 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 - * @param updateVariableValuesRequest - */ - updateVariableValues(updateVariableValuesRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (updateVariableValuesRequest === null || updateVariableValuesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateVariableValues", "updateVariableValuesRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/template/variables/update"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateVariableValuesRequest, "UpdateVariableValuesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateConnectionResponse", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConnectionConfiguration + * @throws ApiException if the response code was not in [200, 299] */ - validateEmailCustomization(_options) { + createConnectionConfiguration(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/customization/email/validate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ConnectionConfigurationResponse", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later Validates the content of your source branch against the objects in your destination environment. Before merging content from your source branch to the destination branch, run this API operation from your destination environment and ensure that the changes from the source branch function in the destination environment. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. - * @param validateMergeRequest - */ - validateMerge(validateMergeRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (validateMergeRequest === null || validateMergeRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "validateMerge", "validateMergeRequest"); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/vcs/git/branches/validate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(validateMergeRequest, "ValidateMergeRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - return requestContext; + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ConnectionConfigurationResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). - * @param validateTokenRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConversation + * @throws ApiException if the response code was not in [200, 299] */ - validateToken(validateTokenRequest, _options) { + createConversation(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (validateTokenRequest === null || validateTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "validateToken", "validateTokenRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Conversation", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/auth/token/validate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Conversation", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Conversation", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; -var ThoughtSpotRestApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to activateUser + * @params response Response returned by the server for a request to createCustomAction * @throws ApiException if the response code was not in [200, 299] */ - activateUser(response) { + createCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "ResponseCustomAction", "" ); return body; @@ -28512,7 +33108,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "ResponseCustomAction", "" ); return body; @@ -28524,14 +33120,72 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignChangeAuthor + * @params response Response returned by the server for a request to createEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - assignChangeAuthor(response) { + createEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createOrg + * @throws ApiException if the response code was not in [200, 299] + */ + createOrg(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "OrgResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28568,7 +33222,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "OrgResponse", "" ); return body; @@ -28580,14 +33234,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignTag + * @params response Response returned by the server for a request to createRole * @throws ApiException if the response code was not in [200, 299] */ - assignTag(response) { + createRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RoleResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28595,7 +33254,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28619,12 +33278,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "RoleResponse", "" ); return body; @@ -28636,14 +33295,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to changeUserPassword + * @params response Response returned by the server for a request to createSchedule * @throws ApiException if the response code was not in [200, 299] */ - changeUserPassword(response) { + createSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseSchedule", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28680,7 +33344,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ResponseSchedule", "" ); return body; @@ -28692,16 +33356,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to commitBranch + * @params response Response returned by the server for a request to createTag * @throws ApiException if the response code was not in [200, 299] */ - commitBranch(response) { + createTag(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CommitResponse", + "Tag", "" ); return body; @@ -28741,7 +33405,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CommitResponse", + "Tag", "" ); return body; @@ -28753,16 +33417,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to connectionConfigurationSearch + * @params response Response returned by the server for a request to createUser * @throws ApiException if the response code was not in [200, 299] */ - connectionConfigurationSearch(response) { + createUser(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -28802,7 +33466,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -28814,16 +33478,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to convertWorksheetToModel + * @params response Response returned by the server for a request to createUserGroup * @throws ApiException if the response code was not in [200, 299] */ - convertWorksheetToModel(response) { + createUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -28863,7 +33527,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -28875,16 +33539,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to copyObject + * @params response Response returned by the server for a request to createVariable * @throws ApiException if the response code was not in [200, 299] */ - copyObject(response) { + createVariable(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", + "Variable", "" ); return body; @@ -28913,14 +33577,6 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - if (isCodeInRange("404", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); - } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -28932,7 +33588,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", + "Variable", "" ); return body; @@ -28944,16 +33600,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createCalendar + * @params response Response returned by the server for a request to createWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - createCalendar(response) { + createWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", + "WebhookResponse", "" ); return body; @@ -28993,7 +33649,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", + "WebhookResponse", "" ); return body; @@ -29005,16 +33661,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConfig + * @params response Response returned by the server for a request to dbtConnection * @throws ApiException if the response code was not in [200, 299] */ - createConfig(response) { + dbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "any", "" ); return body; @@ -29054,7 +33710,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "any", "" ); return body; @@ -29066,16 +33722,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConnection + * @params response Response returned by the server for a request to dbtGenerateSyncTml * @throws ApiException if the response code was not in [200, 299] */ - createConnection(response) { + dbtGenerateSyncTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", + "any", "" ); return body; @@ -29115,7 +33771,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", + "any", "" ); return body; @@ -29127,16 +33783,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConnectionConfiguration + * @params response Response returned by the server for a request to dbtGenerateTml * @throws ApiException if the response code was not in [200, 299] */ - createConnectionConfiguration(response) { + dbtGenerateTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", + "any", "" ); return body; @@ -29176,60 +33832,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConversation - * @throws ApiException if the response code was not in [200, 299] - */ - createConversation(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", + "any", "" ); return body; @@ -29241,16 +33844,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createCustomAction + * @params response Response returned by the server for a request to dbtSearch * @throws ApiException if the response code was not in [200, 299] */ - createCustomAction(response) { + dbtSearch(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", + "Array", "" ); return body; @@ -29290,60 +33893,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createEmailCustomization - * @throws ApiException if the response code was not in [200, 299] - */ - createEmailCustomization(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", + "Array", "" ); return body; @@ -29355,16 +33905,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createOrg + * @params response Response returned by the server for a request to deactivateUser * @throws ApiException if the response code was not in [200, 299] */ - createOrg(response) { + deactivateUser(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", + "ResponseActivationURL", "" ); return body; @@ -29404,68 +33954,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createRole - * @throws ApiException if the response code was not in [200, 299] - */ - createRole(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ResponseActivationURL", "" ); return body; @@ -29477,19 +33966,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createSchedule + * @params response Response returned by the server for a request to deleteCalendar * @throws ApiException if the response code was not in [200, 299] */ - createSchedule(response) { + deleteCalendar(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29526,7 +34010,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", + "void", "" ); return body; @@ -29538,19 +34022,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createTag + * @params response Response returned by the server for a request to deleteConfig * @throws ApiException if the response code was not in [200, 299] */ - createTag(response) { + deleteConfig(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29587,7 +34066,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", + "void", "" ); return body; @@ -29599,19 +34078,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUser + * @params response Response returned by the server for a request to deleteConnection * @throws ApiException if the response code was not in [200, 299] */ - createUser(response) { + deleteConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "User", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29648,7 +34122,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "void", "" ); return body; @@ -29660,19 +34134,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUserGroup + * @params response Response returned by the server for a request to deleteConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - createUserGroup(response) { + deleteConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29709,7 +34178,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", + "void", "" ); return body; @@ -29721,19 +34190,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createVariable + * @params response Response returned by the server for a request to deleteConnectionV2 * @throws ApiException if the response code was not in [200, 299] */ - createVariable(response) { + deleteConnectionV2(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Variable", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29770,7 +34234,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Variable", + "void", "" ); return body; @@ -29782,19 +34246,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtConnection + * @params response Response returned by the server for a request to deleteCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtConnection(response) { + deleteCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29831,7 +34290,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -29843,19 +34302,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateSyncTml + * @params response Response returned by the server for a request to deleteDbtConnection * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateSyncTml(response) { + deleteDbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29892,7 +34346,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -29904,19 +34358,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateTml + * @params response Response returned by the server for a request to deleteEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateTml(response) { + deleteEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29926,21 +34375,13 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29953,7 +34394,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -29965,19 +34406,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtSearch + * @params response Response returned by the server for a request to deleteMetadata * @throws ApiException if the response code was not in [200, 299] */ - dbtSearch(response) { + deleteMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30014,7 +34450,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -30026,19 +34462,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deactivateUser + * @params response Response returned by the server for a request to deleteOrg * @throws ApiException if the response code was not in [200, 299] */ - deactivateUser(response) { + deleteOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseActivationURL", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30075,7 +34506,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseActivationURL", + "void", "" ); return body; @@ -30087,10 +34518,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCalendar + * @params response Response returned by the server for a request to deleteOrgEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - deleteCalendar(response) { + deleteOrgEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30118,7 +34549,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30143,10 +34574,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConfig + * @params response Response returned by the server for a request to deleteRole * @throws ApiException if the response code was not in [200, 299] */ - deleteConfig(response) { + deleteRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30182,7 +34613,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( @@ -30199,10 +34630,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnection + * @params response Response returned by the server for a request to deleteSchedule * @throws ApiException if the response code was not in [200, 299] */ - deleteConnection(response) { + deleteSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30255,10 +34686,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionConfiguration + * @params response Response returned by the server for a request to deleteTag * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionConfiguration(response) { + deleteTag(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30311,10 +34742,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionV2 + * @params response Response returned by the server for a request to deleteUser * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionV2(response) { + deleteUser(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30367,10 +34798,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCustomAction + * @params response Response returned by the server for a request to deleteUserGroup * @throws ApiException if the response code was not in [200, 299] */ - deleteCustomAction(response) { + deleteUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30423,10 +34854,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteDbtConnection + * @params response Response returned by the server for a request to deleteVariable * @throws ApiException if the response code was not in [200, 299] */ - deleteDbtConnection(response) { + deleteVariable(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30479,63 +34910,20 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteEmailCustomization + * @params response Response returned by the server for a request to deleteWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - deleteEmailCustomization(response) { + deleteWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "WebhookDeleteResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteMetadata - * @throws ApiException if the response code was not in [200, 299] - */ - deleteMetadata(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -30571,7 +34959,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "WebhookDeleteResponse", "" ); return body; @@ -30583,71 +34971,20 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteOrg + * @params response Response returned by the server for a request to deployCommit * @throws ApiException if the response code was not in [200, 299] */ - deleteOrg(response) { + deployCommit(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteOrgEmailCustomization - * @throws ApiException if the response code was not in [200, 299] - */ - deleteOrgEmailCustomization(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -30670,7 +35007,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30683,7 +35020,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -30695,20 +35032,21 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteRole + * @params response Response returned by the server for a request to downloadConnectionMetadataChanges * @throws ApiException if the response code was not in [200, 299] */ - deleteRole(response) { + downloadConnectionMetadataChanges(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30716,7 +35054,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30724,7 +35062,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30732,15 +35070,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" + "HttpFile", + "binary" ); return body; } @@ -30751,20 +35089,21 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteSchedule + * @params response Response returned by the server for a request to exportAnswerReport * @throws ApiException if the response code was not in [200, 299] */ - deleteSchedule(response) { + exportAnswerReport(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30772,7 +35111,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30780,7 +35119,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30788,15 +35127,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" + "HttpFile", + "binary" ); return body; } @@ -30807,20 +35146,21 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteTag + * @params response Response returned by the server for a request to exportLiveboardReport * @throws ApiException if the response code was not in [200, 299] */ - deleteTag(response) { + exportLiveboardReport(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30828,7 +35168,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30836,7 +35176,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30844,15 +35184,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" + "HttpFile", + "binary" ); return body; } @@ -30863,14 +35203,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteUser + * @params response Response returned by the server for a request to exportMetadataTML * @throws ApiException if the response code was not in [200, 299] */ - deleteUser(response) { + exportMetadataTML(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30907,7 +35252,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -30919,14 +35264,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteUserGroup + * @params response Response returned by the server for a request to exportMetadataTMLBatched * @throws ApiException if the response code was not in [200, 299] */ - deleteUserGroup(response) { + exportMetadataTMLBatched(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30963,7 +35313,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -30975,14 +35325,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteVariable + * @params response Response returned by the server for a request to fetchAnswerData * @throws ApiException if the response code was not in [200, 299] */ - deleteVariable(response) { + fetchAnswerData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AnswerDataResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31019,7 +35374,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "AnswerDataResponse", "" ); return body; @@ -31031,16 +35386,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deployCommit + * @params response Response returned by the server for a request to fetchAnswerSqlQuery * @throws ApiException if the response code was not in [200, 299] */ - deployCommit(response) { + fetchAnswerSqlQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SqlQueryResponse", "" ); return body; @@ -31080,7 +35435,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SqlQueryResponse", "" ); return body; @@ -31092,21 +35447,25 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to downloadConnectionMetadataChanges + * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus * @throws ApiException if the response code was not in [200, 299] */ - downloadConnectionMetadataChanges(response) { + fetchAsyncImportTaskStatus(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "GetAsyncImportStatusResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -31114,7 +35473,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -31122,7 +35481,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -31130,15 +35489,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "GetAsyncImportStatusResponse", + "" ); return body; } @@ -31149,29 +35508,33 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportAnswerReport + * @params response Response returned by the server for a request to fetchColumnSecurityRules * @throws ApiException if the response code was not in [200, 299] */ - exportAnswerReport(response) { + fetchColumnSecurityRules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -31179,23 +35542,23 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "Array", + "" ); return body; } @@ -31206,21 +35569,25 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportLiveboardReport + * @params response Response returned by the server for a request to fetchConnectionDiffStatus * @throws ApiException if the response code was not in [200, 299] */ - exportLiveboardReport(response) { + fetchConnectionDiffStatus(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "FetchConnectionDiffStatusResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -31228,7 +35595,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -31236,7 +35603,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -31244,15 +35611,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "FetchConnectionDiffStatusResponse", + "" ); return body; } @@ -31263,16 +35630,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTML + * @params response Response returned by the server for a request to fetchLiveboardData * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTML(response) { + fetchLiveboardData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "LiveboardDataResponse", "" ); return body; @@ -31312,7 +35679,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "LiveboardDataResponse", "" ); return body; @@ -31324,16 +35691,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTMLBatched + * @params response Response returned by the server for a request to fetchLiveboardSqlQuery * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTMLBatched(response) { + fetchLiveboardSqlQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "SqlQueryResponse", "" ); return body; @@ -31373,7 +35740,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "SqlQueryResponse", "" ); return body; @@ -31385,16 +35752,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerData + * @params response Response returned by the server for a request to fetchLogs * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerData(response) { + fetchLogs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "Array", "" ); return body; @@ -31434,7 +35801,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "Array", "" ); return body; @@ -31446,16 +35813,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerSqlQuery + * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerSqlQuery(response) { + fetchPermissionsOfPrincipals(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "PermissionOfPrincipalsResponse", "" ); return body; @@ -31495,7 +35862,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "PermissionOfPrincipalsResponse", "" ); return body; @@ -31507,16 +35874,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus + * @params response Response returned by the server for a request to fetchPermissionsOnMetadata * @throws ApiException if the response code was not in [200, 299] */ - fetchAsyncImportTaskStatus(response) { + fetchPermissionsOnMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", + "PermissionOfMetadataResponse", "" ); return body; @@ -31556,7 +35923,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", + "PermissionOfMetadataResponse", "" ); return body; @@ -31568,19 +35935,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchColumnSecurityRules + * @params response Response returned by the server for a request to forceLogoutUsers * @throws ApiException if the response code was not in [200, 299] */ - fetchColumnSecurityRules(response) { + forceLogoutUsers(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31588,7 +35950,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31604,7 +35966,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31612,12 +35974,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -31629,16 +35991,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchConnectionDiffStatus + * @params response Response returned by the server for a request to generateCSV * @throws ApiException if the response code was not in [200, 299] */ - fetchConnectionDiffStatus(response) { + generateCSV(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "any", "" ); return body; @@ -31678,7 +36040,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "any", "" ); return body; @@ -31690,16 +36052,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLiveboardData + * @params response Response returned by the server for a request to getCurrentUserInfo * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardData(response) { + getCurrentUserInfo(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", + "User", "" ); return body; @@ -31739,7 +36101,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", + "User", "" ); return body; @@ -31751,16 +36113,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLiveboardSqlQuery + * @params response Response returned by the server for a request to getCurrentUserToken * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardSqlQuery(response) { + getCurrentUserToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "GetTokenResponse", "" ); return body; @@ -31800,7 +36162,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "GetTokenResponse", "" ); return body; @@ -31812,16 +36174,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLogs + * @params response Response returned by the server for a request to getCustomAccessToken * @throws ApiException if the response code was not in [200, 299] */ - fetchLogs(response) { + getCustomAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "AccessToken", "" ); return body; @@ -31832,7 +36194,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31840,7 +36202,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31848,7 +36210,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31856,12 +36218,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "AccessToken", "" ); return body; @@ -31873,43 +36235,35 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals + * @params response Response returned by the server for a request to getDataSourceSuggestions * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOfPrincipals(response) { + getDataSourceSuggestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "EurekaDataSourceSuggestionResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDataSourceSuggestionResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31917,12 +36271,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "EurekaDataSourceSuggestionResponse", "" ); return body; @@ -31934,16 +36288,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOnMetadata + * @params response Response returned by the server for a request to getFullAccessToken * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOnMetadata(response) { + getFullAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "Token", "" ); return body; @@ -31983,7 +36337,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "Token", "" ); return body; @@ -31995,72 +36349,24 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to forceLogoutUsers + * @params response Response returned by the server for a request to getNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - forceLogoutUsers(response) { + getNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "EurekaGetNLInstructionsResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to generateCSV - * @throws ApiException if the response code was not in [200, 299] - */ - generateCSV(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "EurekaGetNLInstructionsResponse", "" ); return body; @@ -32071,23 +36377,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32095,12 +36385,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "EurekaGetNLInstructionsResponse", "" ); return body; @@ -32112,16 +36402,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserInfo + * @params response Response returned by the server for a request to getObjectAccessToken * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserInfo(response) { + getObjectAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "Token", "" ); return body; @@ -32161,7 +36451,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "Token", "" ); return body; @@ -32173,77 +36463,24 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserToken + * @params response Response returned by the server for a request to getRelevantQuestions * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserToken(response) { + getRelevantQuestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", + "EurekaGetRelevantQuestionsResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getCustomAccessToken - * @throws ApiException if the response code was not in [200, 299] - */ - getCustomAccessToken(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaGetRelevantQuestionsResponse", "" ); return body; @@ -32254,23 +36491,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32278,12 +36499,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaGetRelevantQuestionsResponse", "" ); return body; @@ -32295,16 +36516,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getFullAccessToken + * @params response Response returned by the server for a request to getSystemConfig * @throws ApiException if the response code was not in [200, 299] */ - getFullAccessToken(response) { + getSystemConfig(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemConfig", "" ); return body; @@ -32344,7 +36565,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemConfig", "" ); return body; @@ -32356,16 +36577,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getObjectAccessToken + * @params response Response returned by the server for a request to getSystemInformation * @throws ApiException if the response code was not in [200, 299] */ - getObjectAccessToken(response) { + getSystemInformation(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemInfo", "" ); return body; @@ -32405,7 +36626,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemInfo", "" ); return body; @@ -32417,16 +36638,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getSystemConfig + * @params response Response returned by the server for a request to getSystemOverrideInfo * @throws ApiException if the response code was not in [200, 299] */ - getSystemConfig(response) { + getSystemOverrideInfo(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", + "SystemOverrideInfo", "" ); return body; @@ -32466,7 +36687,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", + "SystemOverrideInfo", "" ); return body; @@ -32478,16 +36699,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getSystemInformation + * @params response Response returned by the server for a request to importMetadataTML * @throws ApiException if the response code was not in [200, 299] */ - getSystemInformation(response) { + importMetadataTML(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", + "Array", "" ); return body; @@ -32527,7 +36748,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", + "Array", "" ); return body; @@ -32539,16 +36760,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getSystemOverrideInfo + * @params response Response returned by the server for a request to importMetadataTMLAsync * @throws ApiException if the response code was not in [200, 299] */ - getSystemOverrideInfo(response) { + importMetadataTMLAsync(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -32588,7 +36809,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -32600,16 +36821,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importMetadataTML + * @params response Response returned by the server for a request to importUserGroups * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTML(response) { + importUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ImportUserGroupsResponse", "" ); return body; @@ -32649,7 +36870,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ImportUserGroupsResponse", "" ); return body; @@ -32661,16 +36882,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importMetadataTMLAsync + * @params response Response returned by the server for a request to importUsers * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTMLAsync(response) { + importUsers(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", + "ImportUsersResponse", "" ); return body; @@ -32710,7 +36931,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", + "ImportUsersResponse", "" ); return body; @@ -32722,19 +36943,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importUserGroups + * @params response Response returned by the server for a request to login * @throws ApiException if the response code was not in [200, 299] */ - importUserGroups(response) { + login(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32771,7 +36987,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", + "void", "" ); return body; @@ -32783,20 +36999,71 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importUsers + * @params response Response returned by the server for a request to logout * @throws ApiException if the response code was not in [200, 299] */ - importUsers(response) { + logout(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUsersResponse", + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", "" ); return body; } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to parameterizeMetadata + * @throws ApiException if the response code was not in [200, 299] + */ + parameterizeMetadata(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -32832,7 +37099,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUsersResponse", + "void", "" ); return body; @@ -32844,10 +37111,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to login + * @params response Response returned by the server for a request to publishMetadata * @throws ApiException if the response code was not in [200, 299] */ - login(response) { + publishMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -32900,10 +37167,63 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to logout + * @params response Response returned by the server for a request to queryGetDecomposedQuery * @throws ApiException if the response code was not in [200, 299] */ - logout(response) { + queryGetDecomposedQuery(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaDecomposeQueryResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaDecomposeQueryResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaDecomposeQueryResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to resetUserPassword + * @throws ApiException if the response code was not in [200, 299] + */ + resetUserPassword(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -32956,14 +37276,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to parameterizeMetadata + * @params response Response returned by the server for a request to revertCommit * @throws ApiException if the response code was not in [200, 299] */ - parameterizeMetadata(response) { + revertCommit(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RevertResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33000,7 +37325,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "RevertResponse", "" ); return body; @@ -33012,10 +37337,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to publishMetadata + * @params response Response returned by the server for a request to revokeToken * @throws ApiException if the response code was not in [200, 299] */ - publishMetadata(response) { + revokeToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -33068,35 +37393,43 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @params response Response returned by the server for a request to searchCalendars * @throws ApiException if the response code was not in [200, 299] */ - queryGetDecomposedQuery(response) { + searchCalendars(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", + "Array", "" ); return body; } - if (isCodeInRange("201", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", + "ErrorResponse", "" ); - return body; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("400", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33104,12 +37437,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", + "Array", "" ); return body; @@ -33121,14 +37454,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to resetUserPassword + * @params response Response returned by the server for a request to searchCommits * @throws ApiException if the response code was not in [200, 299] */ - resetUserPassword(response) { + searchCommits(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33165,7 +37503,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -33177,16 +37515,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to revertCommit + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences * @throws ApiException if the response code was not in [200, 299] */ - revertCommit(response) { + searchCommunicationChannelPreferences(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RevertResponse", + "CommunicationChannelPreferencesResponse", "" ); return body; @@ -33226,7 +37564,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RevertResponse", + "CommunicationChannelPreferencesResponse", "" ); return body; @@ -33238,14 +37576,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to revokeToken + * @params response Response returned by the server for a request to searchConfig * @throws ApiException if the response code was not in [200, 299] */ - revokeToken(response) { + searchConfig(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33282,7 +37625,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -33294,16 +37637,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCalendars + * @params response Response returned by the server for a request to searchConnection * @throws ApiException if the response code was not in [200, 299] */ - searchCalendars(response) { + searchConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33343,7 +37686,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33355,16 +37698,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCommits + * @params response Response returned by the server for a request to searchCustomActions * @throws ApiException if the response code was not in [200, 299] */ - searchCommits(response) { + searchCustomActions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33404,7 +37747,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33416,16 +37759,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConfig + * @params response Response returned by the server for a request to searchData * @throws ApiException if the response code was not in [200, 299] */ - searchConfig(response) { + searchData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SearchDataResponse", "" ); return body; @@ -33465,7 +37808,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SearchDataResponse", "" ); return body; @@ -33477,16 +37820,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConnection + * @params response Response returned by the server for a request to searchEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - searchConnection(response) { + searchEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33499,21 +37842,13 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33526,7 +37861,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33538,16 +37873,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCustomActions + * @params response Response returned by the server for a request to searchMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchCustomActions(response) { + searchMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33587,7 +37922,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33599,16 +37934,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchData + * @params response Response returned by the server for a request to searchOrgs * @throws ApiException if the response code was not in [200, 299] */ - searchData(response) { + searchOrgs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "Array", "" ); return body; @@ -33648,7 +37983,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "Array", "" ); return body; @@ -33660,16 +37995,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchEmailCustomization + * @params response Response returned by the server for a request to searchRoles * @throws ApiException if the response code was not in [200, 299] */ - searchEmailCustomization(response) { + searchRoles(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33682,7 +38017,7 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -33690,18 +38025,26 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33713,16 +38056,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchMetadata + * @params response Response returned by the server for a request to searchSchedules * @throws ApiException if the response code was not in [200, 299] */ - searchMetadata(response) { + searchSchedules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33762,7 +38105,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33774,16 +38117,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchOrgs + * @params response Response returned by the server for a request to searchTags * @throws ApiException if the response code was not in [200, 299] */ - searchOrgs(response) { + searchTags(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33823,7 +38166,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33835,16 +38178,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchRoles + * @params response Response returned by the server for a request to searchUserGroups * @throws ApiException if the response code was not in [200, 299] */ - searchRoles(response) { + searchUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33879,12 +38222,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33896,16 +38239,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchSchedules + * @params response Response returned by the server for a request to searchUsers * @throws ApiException if the response code was not in [200, 299] */ - searchSchedules(response) { + searchUsers(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33945,7 +38288,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33957,16 +38300,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchTags + * @params response Response returned by the server for a request to searchVariables * @throws ApiException if the response code was not in [200, 299] */ - searchTags(response) { + searchVariables(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -34006,7 +38349,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -34018,16 +38361,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchUserGroups + * @params response Response returned by the server for a request to searchWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - searchUserGroups(response) { + searchWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookSearchResponse", "" ); return body; @@ -34067,7 +38410,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookSearchResponse", "" ); return body; @@ -34079,43 +38422,35 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchUsers + * @params response Response returned by the server for a request to sendAgentMessage * @throws ApiException if the response code was not in [200, 299] */ - searchUsers(response) { + sendAgentMessage(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "any", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "any", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -34123,12 +38458,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "any", "" ); return body; @@ -34140,16 +38475,24 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchVariables + * @params response Response returned by the server for a request to sendAgentMessageStreaming * @throws ApiException if the response code was not in [200, 299] */ - searchVariables(response) { + sendAgentMessageStreaming(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SendAgentMessageResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", "" ); return body; @@ -34160,23 +38503,60 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendMessage + * @throws ApiException if the response code was not in [200, 299] + */ + sendMessage(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -34184,12 +38564,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -34201,16 +38581,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to sendMessage + * @params response Response returned by the server for a request to setNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - sendMessage(response) { + setNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -34218,7 +38598,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -34242,7 +38622,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -35442,10 +39822,66 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateUser + * @params response Response returned by the server for a request to updateUser + * @throws ApiException if the response code was not in [200, 299] + */ + updateUser(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateUserGroup * @throws ApiException if the response code was not in [200, 299] */ - updateUser(response) { + updateUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35498,10 +39934,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateUserGroup + * @params response Response returned by the server for a request to updateVariable * @throws ApiException if the response code was not in [200, 299] */ - updateUserGroup(response) { + updateVariable(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35554,10 +39990,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateVariable + * @params response Response returned by the server for a request to updateVariableValues * @throws ApiException if the response code was not in [200, 299] */ - updateVariable(response) { + updateVariableValues(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35610,10 +40046,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateVariableValues + * @params response Response returned by the server for a request to updateWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - updateVariableValues(response) { + updateWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35850,7 +40286,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/activate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35886,7 +40323,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/change-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35922,7 +40360,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35958,7 +40397,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/deactivate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35994,7 +40434,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/{user_identifier}/delete".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -36021,7 +40462,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/force-logout"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36057,7 +40499,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36093,7 +40536,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/reset-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36129,7 +40573,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36169,7 +40614,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/{user_identifier}/update".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36783,7 +41229,7 @@ var UsersApiResponseProcessor = class { // apis/VariableApi.ts var VariableApiRequestFactory = class extends BaseAPIRequestFactory { /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -36796,7 +41242,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36819,7 +41266,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -36832,7 +41279,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/{identifier}/delete".replace("{identifier}", encodeURIComponent(String(identifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -36846,7 +41294,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -36859,7 +41307,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36882,7 +41331,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -36899,7 +41348,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/{identifier}/update".replace("{identifier}", encodeURIComponent(String(identifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36922,7 +41372,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -36932,10 +41382,11 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { if (updateVariableValuesRequest === null || updateVariableValuesRequest === void 0) { throw new RequiredError("VariableApi", "updateVariableValues", "updateVariableValuesRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/update"; + const localVarPath = "/api/rest/2.0/template/variables/update-values"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37267,7 +41718,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/branches/commit"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37303,7 +41755,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37339,7 +41792,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37375,7 +41829,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/commits/deploy"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37415,7 +41870,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/commits/{commit_id}/revert".replace("{commit_id}", encodeURIComponent(String(commitId))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37451,7 +41907,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/commits/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37487,7 +41944,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37523,7 +41981,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37559,7 +42018,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/branches/validate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37875,7 +42335,251 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RevertResponse", + "RevertResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommits + * @throws ApiException if the response code was not in [200, 299] + */ + searchCommits(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchConfig + * @throws ApiException if the response code was not in [200, 299] + */ + searchConfig(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateConfig + * @throws ApiException if the response code was not in [200, 299] + */ + updateConfig(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to validateMerge + * @throws ApiException if the response code was not in [200, 299] + */ + validateMerge(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", "" ); return body; @@ -37883,20 +42587,178 @@ var VersionControlApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/WebhooksApi.ts +var WebhooksApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createWebhookConfigurationRequest === null || createWebhookConfigurationRequest === void 0) { + throw new RequiredError("WebhooksApi", "createWebhookConfiguration", "createWebhookConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createWebhookConfigurationRequest, "CreateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (deleteWebhookConfigurationsRequest === null || deleteWebhookConfigurationsRequest === void 0) { + throw new RequiredError("WebhooksApi", "deleteWebhookConfigurations", "deleteWebhookConfigurationsRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/delete"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteWebhookConfigurationsRequest, "DeleteWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchWebhookConfigurationsRequest === null || searchWebhookConfigurationsRequest === void 0) { + throw new RequiredError("WebhooksApi", "searchWebhookConfigurations", "searchWebhookConfigurationsRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchWebhookConfigurationsRequest, "SearchWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (webhookIdentifier === null || webhookIdentifier === void 0) { + throw new RequiredError("WebhooksApi", "updateWebhookConfiguration", "webhookIdentifier"); + } + if (updateWebhookConfigurationRequest === null || updateWebhookConfigurationRequest === void 0) { + throw new RequiredError("WebhooksApi", "updateWebhookConfiguration", "updateWebhookConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/{webhook_identifier}/update".replace("{webhook_identifier}", encodeURIComponent(String(webhookIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateWebhookConfigurationRequest, "UpdateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var WebhooksApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCommits + * @params response Response returned by the server for a request to createWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - searchCommits(response) { + createWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookResponse", "" ); return body; @@ -37936,7 +42798,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookResponse", "" ); return body; @@ -37948,16 +42810,16 @@ var VersionControlApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConfig + * @params response Response returned by the server for a request to deleteWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - searchConfig(response) { + deleteWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookDeleteResponse", "" ); return body; @@ -37997,7 +42859,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookDeleteResponse", "" ); return body; @@ -38009,16 +42871,16 @@ var VersionControlApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConfig + * @params response Response returned by the server for a request to searchWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - updateConfig(response) { + searchWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "WebhookSearchResponse", "" ); return body; @@ -38058,7 +42920,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "WebhookSearchResponse", "" ); return body; @@ -38070,19 +42932,14 @@ var VersionControlApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateMerge + * @params response Response returned by the server for a request to updateWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - validateMerge(response) { + updateWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -38119,7 +42976,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -38136,6 +42993,24 @@ var ObservableAIApi = class { this.requestFactory = requestFactory || new AIApiRequestFactory(configuration); this.responseProcessor = responseProcessor || new AIApiResponseProcessor(); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const requestContextPromise = this.requestFactory.createAgentConversation(createAgentConversationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createAgentConversation(rsp))); + })); + } /** * 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 @@ -38154,6 +43029,60 @@ var ObservableAIApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createConversation(rsp))); })); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getDataSourceSuggestions(rsp))); + })); + } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.getNLInstructions(getNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNLInstructions(rsp))); + })); + } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getRelevantQuestions(getRelevantQuestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getRelevantQuestions(rsp))); + })); + } /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -38172,6 +43101,43 @@ var ObservableAIApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.queryGetDecomposedQuery(rsp))); })); } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessage(rsp))); + })); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessageStreaming(rsp))); + })); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -38191,6 +43157,24 @@ var ObservableAIApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendMessage(rsp))); })); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.setNLInstructions(setNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.setNLInstructions(rsp))); + })); + } /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -38251,7 +43235,7 @@ var ObservableAuthenticationApi = class { })); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { @@ -38401,7 +43385,7 @@ var ObservableConnectionConfigurationsApi = class { })); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -38437,7 +43421,7 @@ var ObservableConnectionConfigurationsApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -38589,7 +43573,7 @@ var ObservableConnectionsApi = class { })); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -38841,13 +43825,13 @@ var ObservableDBTApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); let middlewarePreObservable = from(requestContextPromise); for (let middleware of this.configuration.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); @@ -38992,7 +43976,7 @@ var ObservableEmailCustomizationApi = class { this.responseProcessor = responseProcessor || new EmailCustomizationApiResponseProcessor(); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -39064,7 +44048,7 @@ var ObservableEmailCustomizationApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -39247,7 +44231,7 @@ var ObservableMetadataApi = class { })); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { @@ -39409,7 +44393,7 @@ var ObservableMetadataApi = class { })); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -39445,7 +44429,7 @@ var ObservableMetadataApi = class { })); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -39604,7 +44588,7 @@ var ObservableReportsApi = class { })); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -39939,6 +44923,24 @@ var ObservableSystemApi = class { this.requestFactory = requestFactory || new SystemApiRequestFactory(configuration); this.responseProcessor = responseProcessor || new SystemApiResponseProcessor(); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.configureCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -39990,6 +44992,24 @@ var ObservableSystemApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getSystemOverrideInfo(rsp))); })); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -40221,6 +45241,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.commitBranch(rsp))); })); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.configureCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -40258,7 +45296,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { @@ -40275,6 +45313,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.copyObject(rsp))); })); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const requestContextPromise = this.requestFactory.createAgentConversation(createAgentConversationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createAgentConversation(rsp))); + })); + } /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -40330,7 +45386,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -40384,7 +45440,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -40510,7 +45566,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -40527,6 +45583,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createVariable(rsp))); })); } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createWebhookConfiguration(rsp))); + })); + } /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -40576,13 +45650,13 @@ var ObservableThoughtSpotRestApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); let middlewarePreObservable = from(requestContextPromise); for (let middleware of this.configuration.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); @@ -40919,7 +45993,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -40936,6 +46010,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteVariable(rsp))); })); } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteWebhookConfigurations(rsp))); + })); + } /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -40991,7 +46083,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -41295,7 +46387,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { @@ -41312,6 +46404,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getCustomAccessToken(rsp))); })); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getDataSourceSuggestions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest @@ -41330,6 +46440,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getFullAccessToken(rsp))); })); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.getNLInstructions(getNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNLInstructions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest @@ -41348,6 +46476,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getObjectAccessToken(rsp))); })); } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getRelevantQuestions(getRelevantQuestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getRelevantQuestions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -41507,7 +46653,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -41651,6 +46797,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchCommits(rsp))); })); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -41868,7 +47032,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -41885,6 +47049,61 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchVariables(rsp))); })); } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchWebhookConfigurations(rsp))); + })); + } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessage(rsp))); + })); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessageStreaming(rsp))); + })); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -41904,6 +47123,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendMessage(rsp))); })); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.setNLInstructions(setNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.setNLInstructions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -41959,7 +47196,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -42068,7 +47305,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -42087,7 +47324,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -42153,7 +47390,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -42339,7 +47576,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -42358,7 +47595,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -42375,6 +47612,25 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.updateVariableValues(rsp))); })); } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.updateWebhookConfiguration(rsp))); + })); + } /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -42624,7 +47880,7 @@ var ObservableVariableApi = class { this.responseProcessor = responseProcessor || new VariableApiResponseProcessor(); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -42642,7 +47898,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -42660,7 +47916,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -42678,7 +47934,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -42697,7 +47953,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -42885,12 +48141,100 @@ var ObservableVersionControlApi = class { })); } }; +var ObservableWebhooksApi = class { + constructor(configuration, requestFactory, responseProcessor) { + this.configuration = configuration; + this.requestFactory = requestFactory || new WebhooksApiRequestFactory(configuration); + this.responseProcessor = responseProcessor || new WebhooksApiResponseProcessor(); + } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createWebhookConfiguration(rsp))); + })); + } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteWebhookConfigurations(rsp))); + })); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchWebhookConfigurations(rsp))); + })); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.updateWebhookConfiguration(rsp))); + })); + } +}; // types/PromiseAPI.ts var PromiseAIApi = class { constructor(configuration, requestFactory, responseProcessor) { this.api = new ObservableAIApi(configuration, requestFactory, responseProcessor); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const result = this.api.createAgentConversation(createAgentConversationRequest, _options); + return result.toPromise(); + } /** * 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 @@ -42899,6 +48243,30 @@ var PromiseAIApi = class { const result = this.api.createConversation(createConversationRequest, _options); return result.toPromise(); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const result = this.api.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + return result.toPromise(); + } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const result = this.api.getNLInstructions(getNLInstructionsRequest, _options); + return result.toPromise(); + } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const result = this.api.getRelevantQuestions(getRelevantQuestionsRequest, _options); + return result.toPromise(); + } /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -42907,6 +48275,23 @@ var PromiseAIApi = class { const result = this.api.queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options); return result.toPromise(); } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const result = this.api.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + return result.toPromise(); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const result = this.api.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + return result.toPromise(); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -42916,6 +48301,14 @@ var PromiseAIApi = class { const result = this.api.sendMessage(conversationIdentifier, sendMessageRequest, _options); return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const result = this.api.setNLInstructions(setNLInstructionsRequest, _options); + return result.toPromise(); + } /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -42944,7 +48337,7 @@ var PromiseAuthenticationApi = class { return result.toPromise(); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { @@ -43012,7 +48405,7 @@ var PromiseConnectionConfigurationsApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -43028,7 +48421,7 @@ var PromiseConnectionConfigurationsApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -43098,7 +48491,7 @@ var PromiseConnectionsApi = class { return result.toPromise(); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -43224,13 +48617,13 @@ var PromiseDBTApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); return result.toPromise(); } /** @@ -43301,7 +48694,7 @@ var PromiseEmailCustomizationApi = class { this.api = new ObservableEmailCustomizationApi(configuration, requestFactory, responseProcessor); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -43333,7 +48726,7 @@ var PromiseEmailCustomizationApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -43420,7 +48813,7 @@ var PromiseMetadataApi = class { return result.toPromise(); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { @@ -43492,7 +48885,7 @@ var PromiseMetadataApi = class { return result.toPromise(); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -43508,7 +48901,7 @@ var PromiseMetadataApi = class { return result.toPromise(); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -43583,7 +48976,7 @@ var PromiseReportsApi = class { return result.toPromise(); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -43740,6 +49133,14 @@ var PromiseSystemApi = class { constructor(configuration, requestFactory, responseProcessor) { this.api = new ObservableSystemApi(configuration, requestFactory, responseProcessor); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const result = this.api.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -43761,6 +49162,14 @@ var PromiseSystemApi = class { const result = this.api.getSystemOverrideInfo(_options); return result.toPromise(); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const result = this.api.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -43868,6 +49277,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.commitBranch(commitBranchRequest, _options); return result.toPromise(); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const result = this.api.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -43885,13 +49302,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { const result = this.api.copyObject(copyObjectRequest, _options); return result.toPromise(); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const result = this.api.createAgentConversation(createAgentConversationRequest, _options); + return result.toPromise(); + } /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -43917,7 +49342,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -43941,7 +49366,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -43997,13 +49422,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { const result = this.api.createVariable(createVariableRequest, _options); return result.toPromise(); } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const result = this.api.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + return result.toPromise(); + } /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -44033,13 +49466,13 @@ var PromiseThoughtSpotRestApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); return result.toPromise(); } /** @@ -44186,13 +49619,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { const result = this.api.deleteVariable(identifier, _options); return result.toPromise(); } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const result = this.api.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + return result.toPromise(); + } /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -44218,7 +49659,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -44352,13 +49793,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { const result = this.api.getCustomAccessToken(getCustomAccessTokenRequest, _options); return result.toPromise(); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const result = this.api.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest @@ -44367,6 +49816,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.getFullAccessToken(getFullAccessTokenRequest, _options); return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const result = this.api.getNLInstructions(getNLInstructionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest @@ -44375,6 +49832,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.getObjectAccessToken(getObjectAccessTokenRequest, _options); return result.toPromise(); } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const result = this.api.getRelevantQuestions(getRelevantQuestionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -44444,7 +49909,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -44508,6 +49973,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.searchCommits(searchCommitsRequest, _options); return result.toPromise(); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const result = this.api.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -44605,13 +50078,38 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { const result = this.api.searchVariables(searchVariablesRequest, _options); return result.toPromise(); } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const result = this.api.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const result = this.api.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + return result.toPromise(); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const result = this.api.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + return result.toPromise(); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -44621,6 +50119,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.sendMessage(conversationIdentifier, sendMessageRequest, _options); return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const result = this.api.setNLInstructions(setNLInstructionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -44646,7 +50152,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -44695,7 +50201,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -44704,7 +50210,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -44740,7 +50246,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -44826,7 +50332,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -44835,13 +50341,22 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { const result = this.api.updateVariableValues(updateVariableValuesRequest, _options); return result.toPromise(); } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const result = this.api.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + return result.toPromise(); + } /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -44957,7 +50472,7 @@ var PromiseVariableApi = class { this.api = new ObservableVariableApi(configuration, requestFactory, responseProcessor); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -44965,7 +50480,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -44973,7 +50488,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -44981,7 +50496,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -44990,7 +50505,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -45076,15 +50591,78 @@ var PromiseVersionControlApi = class { return result.toPromise(); } }; +var PromiseWebhooksApi = class { + constructor(configuration, requestFactory, responseProcessor) { + this.api = new ObservableWebhooksApi(configuration, requestFactory, responseProcessor); + } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const result = this.api.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + return result.toPromise(); + } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const result = this.api.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const result = this.api.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const result = this.api.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + return result.toPromise(); + } +}; // utils/config.ts -var createBearerAuthenticationConfig = (thoughtSpotHost, paramOrTokenProvider) => { +var createAdditionalHeadersMiddleware = (additionalHeaders) => { + return { + /** + * Pre-request middleware to add custom headers to every API call + * @param requestContext - The request context to modify + */ + pre: (requestContext) => { + Object.entries(additionalHeaders).forEach(([headerName, headerValue]) => { + requestContext.setHeaderParam(headerName, headerValue); + }); + return Promise.resolve(requestContext); + }, + /** + * Post-request middleware for response processing + * @param responseContext - The response context + */ + post: (responseContext) => Promise.resolve(responseContext) + }; +}; +var createBearerAuthenticationConfig = (thoughtSpotHost, paramOrTokenProvider, options) => { const serverConfig = new ServerConfiguration( thoughtSpotHost, {} ); + const additionalHeaders = options == null ? void 0 : options.additionalHeaders; + let middleware = []; + if (additionalHeaders && Object.keys(additionalHeaders).length > 0) { + middleware.push(createAdditionalHeadersMiddleware(additionalHeaders)); + } const config = createConfiguration({ - baseServer: serverConfig + baseServer: serverConfig, + promiseMiddleware: middleware }); const authApiClient = new PromiseAuthenticationApi(config); let configTokenProvider; @@ -45109,20 +50687,28 @@ var createBearerAuthenticationConfig = (thoughtSpotHost, paramOrTokenProvider) = }; const globalConfig = createConfiguration({ authMethods: authConfig, - baseServer: serverConfig + baseServer: serverConfig, + promiseMiddleware: middleware }); return globalConfig; }; -var createBasicConfig = (thoughtSpotHost) => { +var createBasicConfig = (thoughtSpotHost, options) => { const thoughtSpotServer = new ServerConfiguration(thoughtSpotHost, {}); + const additionalHeaders = options == null ? void 0 : options.additionalHeaders; + let middleware = []; + if (additionalHeaders && Object.keys(additionalHeaders).length > 0) { + middleware.push(createAdditionalHeadersMiddleware(additionalHeaders)); + } const basicClientConfig = createConfiguration({ - baseServer: thoughtSpotServer + baseServer: thoughtSpotServer, + promiseMiddleware: middleware }); return basicClientConfig; }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { AIApi, + AIContext, APIKey, APIKeyInput, AccessToken, @@ -45133,7 +50719,9 @@ var createBasicConfig = (thoughtSpotHost) => { ActionDetailsInput, ActionDetailsInputCreate, ActivateUserRequest, + AgentConversation, AnswerContent, + AnswerContextInput, AnswerDataResponse, ApiException, AssignChangeAuthorRequest, @@ -45168,14 +50756,21 @@ var createBasicConfig = (thoughtSpotHost) => { CommitHistoryResponse, CommitResponse, CommiterType, + CommunicationChannelPreferencesResponse, + ConfigureCommunicationChannelPreferencesRequest, ConnectionConfigurationResponse, ConnectionConfigurationSearchRequest, ConnectionConfigurationsApi, ConnectionInput, ConnectionsApi, + ContextPayloadV2Input, Conversation, + ConversationSettingsInput, ConvertWorksheetToModelRequest, CopyObjectRequest, + CreateAgentConversationRequest, + CreateAgentConversationRequestConversationSettings, + CreateAgentConversationRequestMetadataContext, CreateCalendarRequest, CreateCalendarRequestTableReference, CreateConfigRequest, @@ -45200,6 +50795,9 @@ var createBasicConfig = (thoughtSpotHost) => { CreateUserGroupRequest, CreateUserRequest, CreateVariableRequest, + CreateWebhookConfigurationRequest, + CreateWebhookConfigurationRequestAuthentication, + CreateWebhookConfigurationRequestSignatureVerification, CronExpression, CronExpressionInput, CustomActionApi, @@ -45207,6 +50805,8 @@ var createBasicConfig = (thoughtSpotHost) => { CustomCalendarsApi, DBTApi, DataApi, + DataSource, + DataSourceContextInput, DataWarehouseObjectInput, DataWarehouseObjects, Database, @@ -45222,13 +50822,22 @@ var createBasicConfig = (thoughtSpotHost) => { DeleteMetadataRequest, DeleteMetadataTypeInput, DeleteOrgEmailCustomizationRequest, + DeleteWebhookConfigurationsRequest, DeployCommitRequest, DeployResponse, EmailCustomizationApi, + EntityHeader, ErrorResponse, + EurekaDataSourceSuggestionResponse, EurekaDecomposeQueryResponse, + EurekaGetNLInstructionsResponse, + EurekaGetRelevantQuestionsResponse, EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery, + EurekaRelevantQuestion, + EurekaSetNLInstructionsResponse, + EventChannelConfig, + EventChannelConfigInput, ExcludeMetadataListItemInput, ExportAnswerReportRequest, ExportAnswerReportRequestRegionalSettings, @@ -45262,9 +50871,14 @@ var createBasicConfig = (thoughtSpotHost) => { GenericInfo, GetAsyncImportStatusResponse, GetCustomAccessTokenRequest, + GetDataSourceSuggestionsRequest, GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters, + GetNLInstructionsRequest, GetObjectAccessTokenRequest, + GetRelevantQuestionsRequest, + GetRelevantQuestionsRequestAiContext, + GetRelevantQuestionsRequestMetadataContext, GetTokenResponse, GroupObject, GroupsApi, @@ -45283,12 +50897,12 @@ var createBasicConfig = (thoughtSpotHost) => { ImportUsersRequest, ImportUsersResponse, InputEurekaNLSRequest, - InputVariableValue, IsomorphicFetchHttpLibrary, JWTMetadataObject, JWTParameter, JWTUserOptions, JWTUserOptionsFull, + LBContextInput, LiveboardContent, LiveboardDataResponse, LiveboardOptions, @@ -45298,6 +50912,7 @@ var createBasicConfig = (thoughtSpotHost) => { LoginRequest, MetadataApi, MetadataAssociationItem, + MetadataContext, MetadataInput, MetadataListItemInput, MetadataObject, @@ -45305,9 +50920,15 @@ var createBasicConfig = (thoughtSpotHost) => { MetadataSearchResponse, MetadataSearchSortOptions, ModelTableList, + NLInstructionsInfo, + NLInstructionsInfoInput, ObjectIDAndName, Org, + OrgChannelConfigInput, + OrgChannelConfigResponse, + OrgDetails, OrgInfo, + OrgPreferenceSearchCriteriaInput, OrgResponse, OrgType, OrgsApi, @@ -45376,6 +50997,7 @@ var createBasicConfig = (thoughtSpotHost) => { SearchCalendarsRequest, SearchCalendarsRequestSortOptions, SearchCommitsRequest, + SearchCommunicationChannelPreferencesRequest, SearchConfigRequest, SearchConnectionRequest, SearchConnectionRequestSortOptions, @@ -45400,10 +51022,16 @@ var createBasicConfig = (thoughtSpotHost) => { SearchUsersRequest, SearchUsersRequestSortOptions, SearchVariablesRequest, + SearchWebhookConfigurationsRequest, + SearchWebhookConfigurationsRequestSortOptions, SecurityApi, SelfDecodingBody, + SendAgentMessageRequest, + SendAgentMessageResponse, + SendAgentMessageStreamingRequest, SendMessageRequest, ServerConfiguration, + SetNLInstructionsRequest, ShareMetadataRequest, ShareMetadataTypeInput, SharePermissionsInput, @@ -45459,6 +51087,7 @@ var createBasicConfig = (thoughtSpotHost) => { UpdateUserRequest, UpdateVariableRequest, UpdateVariableValuesRequest, + UpdateWebhookConfigurationRequest, User, UserGroup, UserGroupResponse, @@ -45469,12 +51098,34 @@ var createBasicConfig = (thoughtSpotHost) => { UsersApi, ValidateMergeRequest, ValidateTokenRequest, + ValueScopeInput, Variable, VariableApi, VariableDetailInput, + VariableUpdateAssignmentInput, + VariableUpdateScopeInput, VariableValue, - VariableValueInput, + VariableValues, VersionControlApi, + WebhookAuthApiKey, + WebhookAuthApiKeyInput, + WebhookAuthBasicAuth, + WebhookAuthBasicAuthInput, + WebhookAuthOAuth2, + WebhookAuthOAuth2Input, + WebhookAuthentication, + WebhookAuthenticationInput, + WebhookDeleteFailure, + WebhookDeleteResponse, + WebhookOrg, + WebhookPagination, + WebhookResponse, + WebhookSearchResponse, + WebhookSignatureVerification, + WebhookSignatureVerificationInput, + WebhookSortOptionsInput, + WebhookUser, + WebhooksApi, configureAuthMethods, createBasicConfig, createBearerAuthenticationConfig, diff --git a/sdks/typescript/dist/index.d.cts b/sdks/typescript/dist/index.d.cts index 2c80cc620..d2de2a686 100644 --- a/sdks/typescript/dist/index.d.cts +++ b/sdks/typescript/dist/index.d.cts @@ -181,6 +181,42 @@ type AuthMethodsConfiguration = { */ declare function configureAuthMethods(config: AuthMethodsConfiguration | undefined): AuthMethods; +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class AIContext { + /** + * User specific text instructions sent to AI system for processing the query. + */ + 'instructions'?: Array | null; + /** + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. + */ + 'content'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** * ThoughtSpot Public REST API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) @@ -1117,6 +1153,38 @@ declare class ActivateUserRequest { constructor(); } +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class AgentConversation { + /** + * Unique identifier of the conversation. + */ + 'conversation_id': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** * ThoughtSpot Public REST API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) @@ -1173,6 +1241,42 @@ declare class AnswerContent { constructor(); } +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class AnswerContextInput { + /** + * Unique identifier of the answer session. + */ + 'session_identifier': string; + /** + * Generation number of the answer. + */ + 'generation_number': number; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** * ThoughtSpot Public REST API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) @@ -1799,7 +1903,7 @@ declare class ColumnSecurityRule { * Array of groups that have access to this column */ 'groups'?: Array | null; - 'sourceTableDetails'?: ColumnSecurityRuleSourceTable; + 'source_table_details'?: ColumnSecurityRuleSourceTable; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -1869,15 +1973,15 @@ declare class ColumnSecurityRuleResponse { /** * GUID of the table for which the column security rules are fetched */ - 'guid'?: string | null; + 'table_guid'?: string | null; /** * Object ID of the table for which the column security rules are fetched */ - 'objId'?: string | null; + 'obj_id'?: string | null; /** * Array containing column security rule objects */ - 'columnSecurityRules'?: Array | null; + 'column_security_rules'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2238,10 +2342,15 @@ declare class CommitResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UserPrincipal { - 'id'?: string | null; - 'name'?: string | null; - 'type'?: string | null; +declare class EventChannelConfig { + /** + * Type of event for which communication channels are configured + */ + 'event_type': EventChannelConfigEventTypeEnum; + /** + * Communication channels enabled for this event type. Empty array indicates no channels are enabled. + */ + 'channels': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2257,6 +2366,8 @@ declare class UserPrincipal { }[]; constructor(); } +type EventChannelConfigEventTypeEnum = "LIVEBOARD_SCHEDULE"; +type EventChannelConfigChannelsEnum = "EMAIL" | "WEBHOOK"; /** * ThoughtSpot Public REST API @@ -2269,17 +2380,15 @@ declare class UserPrincipal { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ConnectionConfigurationResponse { - 'configuration_identifier'?: string | null; - 'name'?: string | null; - 'description'?: string | null; - 'configuration'?: any | null; - 'policy_principals'?: Array | null; - 'policy_processes'?: Array | null; - 'disabled'?: boolean | null; - 'data_warehouse_type'?: ConnectionConfigurationResponseDataWarehouseTypeEnum | null; - 'policy_type'?: ConnectionConfigurationResponsePolicyTypeEnum | null; +declare class OrgDetails { + /** + * Unique id of the org + */ + 'id': string; + /** + * Name of the org + */ + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2295,9 +2404,6 @@ declare class ConnectionConfigurationResponse { }[]; constructor(); } -type ConnectionConfigurationResponsePolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; -type ConnectionConfigurationResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; -type ConnectionConfigurationResponsePolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2310,19 +2416,13 @@ type ConnectionConfigurationResponsePolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ConnectionConfigurationSearchRequest { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Unique ID or name of the configuration. - */ - 'configuration_identifier'?: string; + +declare class OrgChannelConfigResponse { + 'org': OrgDetails; /** - * Type of policy. + * Event-specific communication channel configurations for this org */ - 'policy_type'?: ConnectionConfigurationSearchRequestPolicyTypeEnum; + 'preferences': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2338,7 +2438,6 @@ declare class ConnectionConfigurationSearchRequest { }[]; constructor(); } -type ConnectionConfigurationSearchRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2351,23 +2450,16 @@ type ConnectionConfigurationSearchRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIP * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DataWarehouseObjectInput { - /** - * Name of the database. - */ - 'database'?: string | null; - /** - * Name of the schema within the database. - */ - 'schema'?: string | null; + +declare class CommunicationChannelPreferencesResponse { /** - * Name of the table within the schema. + * Cluster-level default configurations. */ - 'table'?: string | null; + 'cluster_preferences'?: Array | null; /** - * Name of the column within the table. + * Org-specific configurations. */ - 'column'?: string | null; + 'org_preferences'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2395,20 +2487,15 @@ declare class DataWarehouseObjectInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ConnectionInput { - /** - * Unique ID or name of the connection. - */ - 'identifier'?: string | null; +declare class EventChannelConfigInput { /** - * A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match. + * Type of event for which communication channels are configured */ - 'name_pattern'?: string | null; + 'event_type': EventChannelConfigInputEventTypeEnum; /** - * Filter options for databases, schemas, tables and columns. + * Communication channels enabled for this event type. Empty array disables all channels for this event. */ - 'data_warehouse_objects'?: Array | null; + 'channels': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2424,6 +2511,8 @@ declare class ConnectionInput { }[]; constructor(); } +type EventChannelConfigInputEventTypeEnum = "LIVEBOARD_SCHEDULE"; +type EventChannelConfigInputChannelsEnum = "EMAIL" | "WEBHOOK"; /** * ThoughtSpot Public REST API @@ -2436,11 +2525,24 @@ declare class ConnectionInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Conversation { + +declare class OrgChannelConfigInput { /** - * Unique identifier of the conversation. + * Unique identifier or name of the org */ - 'conversation_identifier': string; + 'org_identifier': string; + /** + * Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences. + */ + 'operation'?: OrgChannelConfigInputOperationEnum | null; + /** + * Event-specific configurations. Required for REPLACE operation. + */ + 'preferences'?: Array | null; + /** + * Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences. + */ + 'reset_events'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2456,6 +2558,8 @@ declare class Conversation { }[]; constructor(); } +type OrgChannelConfigInputOperationEnum = "REPLACE" | "RESET"; +type OrgChannelConfigInputResetEventsEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -2468,23 +2572,16 @@ declare class Conversation { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ConvertWorksheetToModelRequest { - /** - * List of Worksheet IDs. - */ - 'worksheet_ids'?: Array; - /** - * List of Worksheet IDs to be excluded. - */ - 'exclude_worksheet_ids'?: Array; + +declare class ConfigureCommunicationChannelPreferencesRequest { /** - * Indicates whether all the worksheet needs to be converted to models. + * Cluster-level default configurations. */ - 'convert_all'?: boolean | null; + 'cluster_preferences'?: Array; /** - * Indicates whether the changes should be applied to database. + * Org-specific configurations. */ - 'apply_changes'?: boolean | null; + 'org_preferences'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2512,23 +2609,10 @@ declare class ConvertWorksheetToModelRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CopyObjectRequest { - /** - * Description of the new object - */ - 'description'?: string; - /** - * GUID of metadata object to be copied (answer id or liveboard id) - */ - 'identifier': string; - /** - * Type of metadata object - */ - 'type'?: CopyObjectRequestTypeEnum; - /** - * Title of the new object - */ - 'title'?: string; +declare class UserPrincipal { + 'id'?: string | null; + 'name'?: string | null; + 'type'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2544,7 +2628,6 @@ declare class CopyObjectRequest { }[]; constructor(); } -type CopyObjectRequestTypeEnum = "LIVEBOARD" | "ANSWER"; /** * ThoughtSpot Public REST API @@ -2557,26 +2640,17 @@ type CopyObjectRequestTypeEnum = "LIVEBOARD" | "ANSWER"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. The given table will be created if `creation_method` is set as `FROM_INPUT_PARAMS`. -*/ -declare class CreateCalendarRequestTableReference { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Name of the database. - */ - 'database_name'?: string | null; - /** - * Name of the schema. - */ - 'schema_name'?: string | null; - /** - * Name of the table. Table names may be case-sensitive depending on the database system. - */ - 'table_name': string; + +declare class ConnectionConfigurationResponse { + 'configuration_identifier'?: string | null; + 'name'?: string | null; + 'description'?: string | null; + 'configuration'?: any | null; + 'policy_principals'?: Array | null; + 'policy_processes'?: Array | null; + 'disabled'?: boolean | null; + 'data_warehouse_type'?: ConnectionConfigurationResponseDataWarehouseTypeEnum | null; + 'policy_type'?: ConnectionConfigurationResponsePolicyTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2592,6 +2666,9 @@ declare class CreateCalendarRequestTableReference { }[]; constructor(); } +type ConnectionConfigurationResponsePolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; +type ConnectionConfigurationResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; +type ConnectionConfigurationResponsePolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2604,45 +2681,19 @@ declare class CreateCalendarRequestTableReference { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateCalendarRequest { +declare class ConnectionConfigurationSearchRequest { /** - * Name of the custom calendar. + * Unique ID or name of the connection. */ - 'name': string; + 'connection_identifier': string; /** - * Type of create operation. + * Unique ID or name of the configuration. */ - 'creation_method': CreateCalendarRequestCreationMethodEnum; - 'table_reference': CreateCalendarRequestTableReference; + 'configuration_identifier'?: string; /** - * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. + * Type of policy. */ - 'start_date'?: string; - /** - * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. - */ - 'end_date'?: string; - /** - * Type of the calendar. - */ - 'calendar_type'?: CreateCalendarRequestCalendarTypeEnum; - /** - * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). - */ - 'month_offset'?: CreateCalendarRequestMonthOffsetEnum; - /** - * Specify the starting day of the week. - */ - 'start_day_of_week'?: CreateCalendarRequestStartDayOfWeekEnum; - /** - * Prefix to add before the quarter. - */ - 'quarter_name_prefix'?: string; - /** - * Prefix to add before the year. - */ - 'year_name_prefix'?: string; + 'policy_type'?: ConnectionConfigurationSearchRequestPolicyTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2658,10 +2709,7 @@ declare class CreateCalendarRequest { }[]; constructor(); } -type CreateCalendarRequestCreationMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; -type CreateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; -type CreateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; -type CreateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; +type ConnectionConfigurationSearchRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2674,39 +2722,23 @@ type CreateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConfigRequest { - /** - * URL for connecting to remote repository - */ - 'repository_url': string; - /** - * Username to authenticate connection to remote repository - */ - 'username': string; - /** - * Access token corresponding to the user to authenticate connection to remote repository - */ - 'access_token': string; - /** - * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later - */ - 'org_identifier'?: string; +declare class DataWarehouseObjectInput { /** - * List the remote branches to configure. Example:[development, production] + * Name of the database. */ - 'branch_names'?: Array; + 'database'?: string | null; /** - * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + * Name of the schema within the database. */ - 'commit_branch_name'?: string; + 'schema'?: string | null; /** - * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + * Name of the table within the schema. */ - 'enable_guid_mapping'?: boolean | null; + 'table'?: string | null; /** - * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Note: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. Version: 9.7.0.cl or later + * Name of the column within the table. */ - 'configuration_branch_name'?: string; + 'column'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2734,39 +2766,20 @@ declare class CreateConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConnectionConfigurationRequest { - /** - * Unique name for the configuration. - */ - 'name': string; - /** - * Description of the configuration. - */ - 'description'?: string; + +declare class ConnectionInput { /** * Unique ID or name of the connection. */ - 'connection_identifier': string; - /** - * Type of authentication used for the connection. - */ - 'authentication_type'?: CreateConnectionConfigurationRequestAuthenticationTypeEnum; - /** - * Configuration properties in JSON. - */ - 'configuration': any; - /** - * Type of policy. - */ - 'policy_type'?: CreateConnectionConfigurationRequestPolicyTypeEnum; + 'identifier'?: string | null; /** - * Unique ID or name of the User and User Groups. + * A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match. */ - 'policy_principals'?: Array; + 'name_pattern'?: string | null; /** - * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + * Filter options for databases, schemas, tables and columns. */ - 'policy_processes'?: Array; + 'data_warehouse_objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2782,9 +2795,6 @@ declare class CreateConnectionConfigurationRequest { }[]; constructor(); } -type CreateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "KEY_PAIR" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_WITH_SERVICE_PRINCIPAL"; -type CreateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; -type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; /** * ThoughtSpot Public REST API @@ -2797,27 +2807,11 @@ type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConnectionRequest { - /** - * Unique name for the connection. - */ - 'name': string; - /** - * Description of the connection. - */ - 'description'?: string; - /** - * Type of the data warehouse. - */ - 'data_warehouse_type': CreateConnectionRequestDataWarehouseTypeEnum; - /** - * Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON. - */ - 'data_warehouse_config': any; +declare class DataSourceContextInput { /** - * Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`. + * Unique identifier of the data source. */ - 'validate'?: boolean | null; + 'guid': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2833,7 +2827,6 @@ declare class CreateConnectionRequest { }[]; constructor(); } -type CreateConnectionRequestDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -2846,23 +2839,15 @@ type CreateConnectionRequestDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHI * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConnectionResponse { - /** - * ID of the connection created. - */ - 'id': string; - /** - * Name of the connection. - */ - 'name': string; +declare class LBContextInput { /** - * Type of data warehouse. + * Unique identifier of the liveboard. */ - 'data_warehouse_type': CreateConnectionResponseDataWarehouseTypeEnum; + 'liveboard_identifier': string; /** - * Details of the connection. + * Unique identifier of the visualization. */ - 'details'?: any | null; + 'visualization_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2878,7 +2863,6 @@ declare class CreateConnectionResponse { }[]; constructor(); } -type CreateConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -2891,15 +2875,15 @@ type CreateConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSH * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConversationRequest { - /** - * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. - */ - 'metadata_identifier': string; + +declare class ContextPayloadV2Input { /** - * Token string to set the context for the conversation. For example,`[sales],[item type],[state]`. + * Type of the context. */ - 'tokens'?: string; + 'type'?: ContextPayloadV2InputTypeEnum | null; + 'answer_context'?: AnswerContextInput; + 'liveboard_context'?: LBContextInput; + 'data_source_context'?: DataSourceContextInput; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2915,6 +2899,7 @@ declare class CreateConversationRequest { }[]; constructor(); } +type ContextPayloadV2InputTypeEnum = "answer" | "liveboard" | "data_source"; /** * ThoughtSpot Public REST API @@ -2927,13 +2912,11 @@ declare class CreateConversationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required. -*/ -declare class CreateCustomActionRequestActionDetails { - 'CALLBACK'?: CALLBACKInputMandatory; - 'URL'?: URLInputMandatory; +declare class Conversation { + /** + * Unique identifier of the conversation. + */ + 'conversation_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2961,14 +2944,19 @@ declare class CreateCustomActionRequestActionDetails { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. -*/ -declare class CreateCustomActionRequestDefaultActionConfig { +declare class ConversationSettingsInput { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true + * Enable contextual change analysis. */ - 'visibility'?: boolean | null; + 'enable_contextual_change_analysis'?: boolean | null; + /** + * Enable natural language to answer generation. + */ + 'enable_natural_language_answer_generation'?: boolean | null; + /** + * Enable reasoning. + */ + 'enable_reasoning'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2996,22 +2984,23 @@ declare class CreateCustomActionRequestDefaultActionConfig { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateCustomActionRequest { +declare class ConvertWorksheetToModelRequest { /** - * Name of the custom action. The custom action name must be unique. + * List of Worksheet IDs. */ - 'name': string; - 'action_details': CreateCustomActionRequestActionDetails; + 'worksheet_ids'?: Array; /** - * Metadata objects to which the custom action needs to be associated. + * List of Worksheet IDs to be excluded. */ - 'associate_metadata'?: Array; - 'default_action_config'?: CreateCustomActionRequestDefaultActionConfig; + 'exclude_worksheet_ids'?: Array; /** - * Unique ID or name of the groups that can view and access the custom action. + * Indicates whether all the worksheet needs to be converted to models. */ - 'group_identifiers'?: Array; + 'convert_all'?: boolean | null; + /** + * Indicates whether the changes should be applied to database. + */ + 'apply_changes'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3039,102 +3028,67 @@ declare class CreateCustomActionRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Email customization configuration as key value pair -*/ -declare class CreateEmailCustomizationRequestTemplateProperties { - /** - * Background color for call-to-action button in hex format - */ - 'cta_button_bg_color'?: string | null; - /** - * Text color for call-to-action button in hex format - */ - 'cta_text_font_color'?: string | null; - /** - * Primary background color in hex format - */ - 'primary_bg_color'?: string | null; - /** - * Home page URL (HTTP/HTTPS only) - */ - 'home_url'?: string | null; +declare class CopyObjectRequest { /** - * Logo image URL (HTTP/HTTPS only) + * Description of the new object */ - 'logo_url'?: string | null; + 'description'?: string; /** - * Font family for email content (e.g., Arial, sans-serif) + * GUID of metadata object to be copied (answer id or liveboard id) */ - 'font_family'?: string | null; + 'identifier': string; /** - * Product name to display + * Type of metadata object */ - 'product_name'?: string | null; + 'type'?: CopyObjectRequestTypeEnum; /** - * Footer address text + * Title of the new object */ - 'footer_address'?: string | null; + 'title'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type CopyObjectRequestTypeEnum = "LIVEBOARD" | "ANSWER"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Conversation settings. +*/ +declare class CreateAgentConversationRequestConversationSettings { /** - * Footer phone number + * Enable contextual change analysis. */ - 'footer_phone'?: string | null; + 'enable_contextual_change_analysis'?: boolean | null; /** - * Replacement value for Liveboard + * Enable natural language to answer generation. */ - 'replacement_value_for_liveboard'?: string | null; + 'enable_natural_language_answer_generation'?: boolean | null; /** - * Replacement value for Answer + * Enable reasoning. */ - 'replacement_value_for_answer'?: string | null; - /** - * Replacement value for SpotIQ - */ - 'replacement_value_for_spot_iq'?: string | null; - /** - * Whether to hide footer address - */ - 'hide_footer_address'?: boolean | null; - /** - * Whether to hide footer phone number - */ - 'hide_footer_phone'?: boolean | null; - /** - * Whether to hide manage notification link - */ - 'hide_manage_notification'?: boolean | null; - /** - * Whether to hide mobile app nudge - */ - 'hide_mobile_app_nudge'?: boolean | null; - /** - * Whether to hide privacy policy link - */ - 'hide_privacy_policy'?: boolean | null; - /** - * Whether to hide product name - */ - 'hide_product_name'?: boolean | null; - /** - * Whether to hide ThoughtSpot vocabulary definitions - */ - 'hide_ts_vocabulary_definitions'?: boolean | null; - /** - * Whether to hide notification status - */ - 'hide_notification_status'?: boolean | null; - /** - * Whether to hide error message - */ - 'hide_error_message'?: boolean | null; - /** - * Whether to hide unsubscribe link - */ - 'hide_unsubscribe_link'?: boolean | null; - /** - * Whether to hide modify alert - */ - 'hide_modify_alert'?: boolean | null; + 'enable_reasoning'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3163,12 +3117,17 @@ declare class CreateEmailCustomizationRequestTemplateProperties { * Do not edit the class manually. */ -declare class CreateEmailCustomizationRequest { - 'template_properties': CreateEmailCustomizationRequestTemplateProperties; +/** +* Context for the conversation. +*/ +declare class CreateAgentConversationRequestMetadataContext { /** - * Unique ID or name of org Version: 10.12.0.cl or later + * Type of the context. */ - 'org_identifier'?: string; + 'type'?: CreateAgentConversationRequestMetadataContextTypeEnum | null; + 'answer_context'?: AnswerContextInput; + 'liveboard_context'?: LBContextInput; + 'data_source_context'?: DataSourceContextInput; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3184,6 +3143,7 @@ declare class CreateEmailCustomizationRequest { }[]; constructor(); } +type CreateAgentConversationRequestMetadataContextTypeEnum = "answer" | "liveboard" | "data_source"; /** * ThoughtSpot Public REST API @@ -3196,9 +3156,10 @@ declare class CreateEmailCustomizationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class OrgType { - 'name'?: string | null; - 'id'?: number | null; + +declare class CreateAgentConversationRequest { + 'metadata_context': CreateAgentConversationRequestMetadataContext; + 'conversation_settings': CreateAgentConversationRequestConversationSettings; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3226,21 +3187,26 @@ declare class OrgType { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateEmailCustomizationResponse { +/** +* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. The given table will be created if `creation_method` is set as `FROM_INPUT_PARAMS`. +*/ +declare class CreateCalendarRequestTableReference { /** - * Tenant ID + * Unique ID or name of the connection. */ - 'tenant_id': string; - 'org': OrgType; + 'connection_identifier': string; /** - * Email customization name. + * Name of the database. */ - 'name': string; + 'database_name'?: string | null; /** - * Customization configuration for the email + * Name of the schema. */ - 'template_properties': any; + 'schema_name'?: string | null; + /** + * Name of the table. Table names may be case-sensitive depending on the database system. + */ + 'table_name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3268,15 +3234,45 @@ declare class CreateEmailCustomizationResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateOrgRequest { + +declare class CreateCalendarRequest { /** - * Name of the Org. + * Name of the custom calendar. */ 'name': string; /** - * Description of the Org. + * Type of create operation. */ - 'description'?: string; + 'creation_method': CreateCalendarRequestCreationMethodEnum; + 'table_reference': CreateCalendarRequestTableReference; + /** + * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. + */ + 'start_date'?: string; + /** + * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. + */ + 'end_date'?: string; + /** + * Type of the calendar. + */ + 'calendar_type'?: CreateCalendarRequestCalendarTypeEnum; + /** + * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). + */ + 'month_offset'?: CreateCalendarRequestMonthOffsetEnum; + /** + * Specify the starting day of the week. + */ + 'start_day_of_week'?: CreateCalendarRequestStartDayOfWeekEnum; + /** + * Prefix to add before the quarter. + */ + 'quarter_name_prefix'?: string; + /** + * Prefix to add before the year. + */ + 'year_name_prefix'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3292,6 +3288,10 @@ declare class CreateOrgRequest { }[]; constructor(); } +type CreateCalendarRequestCreationMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; +type CreateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; +type CreateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; +type CreateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; /** * ThoughtSpot Public REST API @@ -3304,23 +3304,39 @@ declare class CreateOrgRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateRoleRequest { +declare class CreateConfigRequest { /** - * Unique name of the Role. + * URL for connecting to remote repository */ - 'name': string; + 'repository_url': string; /** - * Description of the Role. + * Username to authenticate connection to remote repository */ - 'description'?: string; + 'username': string; /** - * Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. + * Access token corresponding to the user to authenticate connection to remote repository */ - 'privileges'?: Array; + 'access_token': string; /** - *
Version: 10.5.0.cl or later
Indicates whether the role is read only. A readonly role can neither be updated nor deleted. + * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later */ - 'read_only'?: boolean | null; + 'org_identifier'?: string; + /** + * List the remote branches to configure. Example:[development, production] + */ + 'branch_names'?: Array; + /** + * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + */ + 'commit_branch_name'?: string; + /** + * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + */ + 'enable_guid_mapping'?: boolean | null; + /** + * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Note: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. Version: 9.7.0.cl or later + */ + 'configuration_branch_name'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3336,7 +3352,6 @@ declare class CreateRoleRequest { }[]; constructor(); } -type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE"; /** * ThoughtSpot Public REST API @@ -3349,34 +3364,39 @@ type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Schedule selected cron expression. -*/ -declare class CronExpressionInput { +declare class CreateConnectionConfigurationRequest { /** - * Day of month of the object. + * Unique name for the configuration. */ - 'day_of_month': string; + 'name': string; /** - * Day of Week of the object. + * Description of the configuration. */ - 'day_of_week': string; + 'description'?: string; /** - * Hour of the object. + * Unique ID or name of the connection. */ - 'hour': string; + 'connection_identifier': string; /** - * Minute of the object. + * Type of authentication used for the connection. */ - 'minute': string; + 'authentication_type'?: CreateConnectionConfigurationRequestAuthenticationTypeEnum; /** - * Month of the object. + * Configuration properties in JSON. */ - 'month': string; + 'configuration': any; /** - * Second of the object. + * Type of policy. */ - 'second': string; + 'policy_type'?: CreateConnectionConfigurationRequestPolicyTypeEnum; + /** + * Unique ID or name of the User and User Groups. + */ + 'policy_principals'?: Array; + /** + * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + */ + 'policy_processes'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3392,6 +3412,9 @@ declare class CronExpressionInput { }[]; constructor(); } +type CreateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "KEY_PAIR" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "OAUTH_CLIENT_CREDENTIALS"; +type CreateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; +type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; /** * ThoughtSpot Public REST API @@ -3404,12 +3427,27 @@ declare class CronExpressionInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Frequency settings for the scheduled job. -*/ -declare class CreateScheduleRequestFrequency { - 'cron_expression': CronExpressionInput; +declare class CreateConnectionRequest { + /** + * Unique name for the connection. + */ + 'name': string; + /** + * Description of the connection. + */ + 'description'?: string; + /** + * Type of the data warehouse. + */ + 'data_warehouse_type': CreateConnectionRequestDataWarehouseTypeEnum; + /** + * Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON. + */ + 'data_warehouse_config': any; + /** + * Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`. + */ + 'validate'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3425,6 +3463,7 @@ declare class CreateScheduleRequestFrequency { }[]; constructor(); } +type CreateConnectionRequestDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -3437,14 +3476,23 @@ declare class CreateScheduleRequestFrequency { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options to specify details of Liveboard. -*/ -declare class CreateScheduleRequestLiveboardOptions { +declare class CreateConnectionResponse { /** - * Unique ID or name of visualizations. + * ID of the connection created. */ - 'visualization_identifiers': Array; + 'id': string; + /** + * Name of the connection. + */ + 'name': string; + /** + * Type of data warehouse. + */ + 'data_warehouse_type': CreateConnectionResponseDataWarehouseTypeEnum; + /** + * Details of the connection. + */ + 'details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3460,6 +3508,7 @@ declare class CreateScheduleRequestLiveboardOptions { }[]; constructor(); } +type CreateConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -3472,46 +3521,15 @@ declare class CreateScheduleRequestLiveboardOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`. -*/ -declare class CreateScheduleRequestPdfOptions { +declare class CreateConversationRequest { /** - * Indicates whether to include complete Liveboard. + * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. */ - 'complete_liveboard'?: boolean | null; + 'metadata_identifier': string; /** - * Indicates whether to include cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page - */ - 'include_page_number'?: boolean | null; - /** - * Text to include in the footer of each page. - */ - 'page_footer_text'?: string | null; - /** - * Page orientation of the PDF. - */ - 'page_orientation'?: string | null; - /** - * Page size. - */ - 'page_size'?: CreateScheduleRequestPdfOptionsPageSizeEnum | null; - /** - * Indicates whether to include only first page of the tables. + * Token string to set the context for the conversation. For example,`[sales],[item type],[state]`. */ - 'truncate_table'?: boolean | null; + 'tokens'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3527,7 +3545,6 @@ declare class CreateScheduleRequestPdfOptions { }[]; constructor(); } -type CreateScheduleRequestPdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -3540,15 +3557,13 @@ type CreateScheduleRequestPdfOptionsPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PrincipalsListItemInput { - /** - * Unique ID or name of the user or group. - */ - 'identifier': string; - /** - * Principal type. - */ - 'type': string; + +/** +* Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required. +*/ +declare class CreateCustomActionRequestActionDetails { + 'CALLBACK'?: CALLBACKInputMandatory; + 'URL'?: URLInputMandatory; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3576,19 +3591,14 @@ declare class PrincipalsListItemInput { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Recipients of the scheduled job notifications. Add the GUID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. +* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. */ -declare class CreateScheduleRequestRecipientDetails { - /** - * Emails of the recipients. - */ - 'emails'?: Array | null; +declare class CreateCustomActionRequestDefaultActionConfig { /** - * User or groups to be set as recipients of the schedule notifications. + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true */ - 'principals'?: Array | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3617,39 +3627,21 @@ declare class CreateScheduleRequestRecipientDetails { * Do not edit the class manually. */ -declare class CreateScheduleRequest { +declare class CreateCustomActionRequest { /** - * Name of the scheduled job. + * Name of the custom action. The custom action name must be unique. */ 'name': string; + 'action_details': CreateCustomActionRequestActionDetails; /** - * Description of the job. - */ - 'description': string; - /** - * Type of the metadata object. - */ - 'metadata_type': CreateScheduleRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object. - */ - 'metadata_identifier': string; - /** - * Export file format. - */ - 'file_format'?: CreateScheduleRequestFileFormatEnum; - 'liveboard_options'?: CreateScheduleRequestLiveboardOptions; - 'pdf_options'?: CreateScheduleRequestPdfOptions; - /** - * Time zone + * Metadata objects to which the custom action needs to be associated. */ - 'time_zone': CreateScheduleRequestTimeZoneEnum; - 'frequency'?: CreateScheduleRequestFrequency; - 'recipient_details': CreateScheduleRequestRecipientDetails; + 'associate_metadata'?: Array; + 'default_action_config'?: CreateCustomActionRequestDefaultActionConfig; /** - * Personalised view id of the liveboard to be scheduled. + * Unique ID or name of the groups that can view and access the custom action. */ - 'personalised_view_id'?: string; + 'group_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3665,9 +3657,6 @@ declare class CreateScheduleRequest { }[]; constructor(); } -type CreateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; -type CreateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; -type CreateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; /** * ThoughtSpot Public REST API @@ -3680,83 +3669,110 @@ type CreateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Af * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateTagRequest { +/** +* Email customization configuration as key value pair +*/ +declare class CreateEmailCustomizationRequestTemplateProperties { /** - * Name of the tag. + * Background color for call-to-action button in hex format */ - 'name': string; + 'cta_button_bg_color'?: string | null; /** - * Hex color code to be assigned to the tag. For example, #ff78a9. + * Text color for call-to-action button in hex format */ - 'color'?: string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} - -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class CreateUserGroupRequest { + 'cta_text_font_color'?: string | null; /** - * Name of the group. The group name must be unique. + * Primary background color in hex format */ - 'name': string; + 'primary_bg_color'?: string | null; /** - * Display name for the group. + * Home page URL (HTTP/HTTPS only) */ - 'display_name': string; + 'home_url'?: string | null; /** - * GUID of the Liveboards to assign as default Liveboards to the users in the group. + * Logo image URL (HTTP/HTTPS only) */ - 'default_liveboard_identifiers'?: Array; + 'logo_url'?: string | null; /** - * Description of the group + * Font family for email content (e.g., Arial, sans-serif) */ - 'description'?: string; + 'font_family'?: string | null; /** - * Privileges to assign to the group + * Product name to display */ - 'privileges'?: Array; + 'product_name'?: string | null; /** - * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + * Footer address text */ - 'sub_group_identifiers'?: Array; + 'footer_address'?: string | null; /** - * Group type. + * Footer phone number */ - 'type'?: CreateUserGroupRequestTypeEnum; + 'footer_phone'?: string | null; /** - * GUID or name of the users to assign to the group. + * Replacement value for Liveboard */ - 'user_identifiers'?: Array; + 'replacement_value_for_liveboard'?: string | null; /** - * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + * Replacement value for Answer */ - 'visibility'?: CreateUserGroupRequestVisibilityEnum; + 'replacement_value_for_answer'?: string | null; /** - * Role identifiers of the roles that should be assigned to the group. + * Replacement value for SpotIQ */ - 'role_identifiers'?: Array; + 'replacement_value_for_spot_iq'?: string | null; + /** + * Whether to hide footer address + */ + 'hide_footer_address'?: boolean | null; + /** + * Whether to hide footer phone number + */ + 'hide_footer_phone'?: boolean | null; + /** + * Whether to hide manage notification link + */ + 'hide_manage_notification'?: boolean | null; + /** + * Whether to hide mobile app nudge + */ + 'hide_mobile_app_nudge'?: boolean | null; + /** + * Whether to hide privacy policy link + */ + 'hide_privacy_policy'?: boolean | null; + /** + * Whether to hide product name + */ + 'hide_product_name'?: boolean | null; + /** + * Whether to hide ThoughtSpot vocabulary definitions + */ + 'hide_ts_vocabulary_definitions'?: boolean | null; + /** + * Whether to hide notification status + */ + 'hide_notification_status'?: boolean | null; + /** + * Whether to hide error message + */ + 'hide_error_message'?: boolean | null; + /** + * Whether to hide unsubscribe link + */ + 'hide_unsubscribe_link'?: boolean | null; + /** + * Whether to hide modify alert + */ + 'hide_modify_alert'?: boolean | null; + /** + * Company privacy policy URL (HTTP/HTTPS only) + */ + 'company_privacy_policy_url'?: string | null; + /** + * Company website URL (HTTP/HTTPS only) + */ + 'company_website_url'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3772,9 +3788,6 @@ declare class CreateUserGroupRequest { }[]; constructor(); } -type CreateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type CreateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -3787,15 +3800,13 @@ type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FavoriteMetadataInput { - /** - * Unique ID or name of the metadata object. - */ - 'identifier'?: string | null; + +declare class CreateEmailCustomizationRequest { + 'template_properties': CreateEmailCustomizationRequestTemplateProperties; /** - * Type of metadata 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. + * Unique ID or name of org Version: 10.12.0.cl or later */ - 'type'?: FavoriteMetadataInputTypeEnum | null; + 'org_identifier'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3811,7 +3822,6 @@ declare class FavoriteMetadataInput { }[]; constructor(); } -type FavoriteMetadataInputTypeEnum = "LIVEBOARD" | "ANSWER"; /** * ThoughtSpot Public REST API @@ -3824,84 +3834,9 @@ type FavoriteMetadataInputTypeEnum = "LIVEBOARD" | "ANSWER"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateUserRequest { - /** - * Name of the user. The username string must be unique. - */ - 'name': string; - /** - * A unique display name string for the user account, usually their first and last name - */ - 'display_name': string; - /** - * Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email. - */ - 'password'?: string; - /** - * Email of the user account - */ - 'email': string; - /** - * Type of the account. - */ - 'account_type'?: CreateUserRequestAccountTypeEnum; - /** - * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. - */ - 'account_status'?: CreateUserRequestAccountStatusEnum; - /** - * List of Org IDs to which the user belongs. - */ - 'org_identifiers'?: Array; - /** - * GUIDs or names of the groups to which the newly created user belongs. - */ - 'group_identifiers'?: Array; - /** - * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. - */ - 'visibility'?: CreateUserRequestVisibilityEnum; - /** - * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. - */ - 'notify_on_share'?: boolean | null; - /** - * The user preference for revisiting the onboarding experience. - */ - 'show_onboarding_experience'?: boolean | null; - /** - * flag to get the on-boarding experience is completed or not. - */ - 'onboarding_experience_completed'?: boolean | null; - /** - * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. - */ - 'home_liveboard_identifier'?: string; - /** - * Metadata objects to add to the user\'s favorites list. - */ - 'favorite_metadata'?: Array; - /** - * Locale for the user. - */ - 'preferred_locale'?: CreateUserRequestPreferredLocaleEnum; - /** - * Properties for the user - */ - 'extended_properties'?: any; - /** - * Preferences for the user - */ - 'extended_preferences'?: any; - /** - * Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled. - */ - 'trigger_welcome_email'?: boolean | null; - /** - * Flag to indicate whether activation email should be sent to the user. Default value for IAMv2 users is set to true. Users must either set this to false, or enter a valid password if they do not want to trigger an activation email. - */ - 'trigger_activation_email'?: boolean | null; +declare class OrgType { + 'name'?: string | null; + 'id'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3917,10 +3852,6 @@ declare class CreateUserRequest { }[]; constructor(); } -type CreateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type CreateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type CreateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type CreateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -3933,27 +3864,57 @@ type CreateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE * https://openapi-generator.tech * Do not edit the class manually. */ -declare class InputVariableValue { + +declare class CreateEmailCustomizationResponse { /** - * The connection property value + * Tenant ID */ - 'value': string; + 'tenant_id': string; + 'org': OrgType; /** - * The unique name of the org + * Email customization name. */ - 'org_identifier': string; + 'name': string; /** - * Principal type + * Customization configuration for the email */ - 'principal_type'?: InputVariableValuePrincipalTypeEnum | null; + 'template_properties': any; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class CreateOrgRequest { /** - * Unique ID or name of the principal + * Name of the Org. */ - 'principal_identifier'?: string | null; + 'name': string; /** - * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + * Description of the Org. */ - 'priority'?: number | null; + 'description'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3969,7 +3930,6 @@ declare class InputVariableValue { }[]; constructor(); } -type InputVariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -3982,24 +3942,23 @@ type InputVariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateVariableRequest { +declare class CreateRoleRequest { /** - * Type of variable + * Unique name of the Role. */ - 'type': CreateVariableRequestTypeEnum; + 'name': string; /** - * Name of the variable. This is unique across the cluster. + * Description of the Role. */ - 'name': string; + 'description'?: string; /** - * If the variable contains sensitive values like passwords + * Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. */ - 'sensitive'?: boolean | null; + 'privileges'?: Array; /** - * Values of variable + *
Version: 10.5.0.cl or later
Indicates whether the role is read only. A readonly role can neither be updated nor deleted. */ - 'values'?: Array; + 'read_only'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4015,7 +3974,7 @@ declare class CreateVariableRequest { }[]; constructor(); } -type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL"; +type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MANAGE_VARIABLES" | "CAN_MODIFY_FOLDERS" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; /** * ThoughtSpot Public REST API @@ -4031,7 +3990,7 @@ type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | " /** * Schedule selected cron expression. */ -declare class CronExpression { +declare class CronExpressionInput { /** * Day of month of the object. */ @@ -4083,18 +4042,47 @@ declare class CronExpression { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* MetadataType InputType used in Custom Action API\'s +* Frequency settings for the scheduled job. */ -declare class CustomActionMetadataTypeInput { - /** - * Type of metadata 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. - */ - 'type'?: CustomActionMetadataTypeInputTypeEnum | null; +declare class CreateScheduleRequestFrequency { + 'cron_expression': CronExpressionInput; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Options to specify details of Liveboard. +*/ +declare class CreateScheduleRequestLiveboardOptions { /** - * Unique ID or name of the metadata object. + * Unique ID or name of visualizations. */ - 'identifier': string; + 'visualization_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4110,7 +4098,6 @@ declare class CustomActionMetadataTypeInput { }[]; constructor(); } -type CustomActionMetadataTypeInputTypeEnum = "VISUALIZATION" | "ANSWER" | "WORKSHEET"; /** * ThoughtSpot Public REST API @@ -4123,36 +4110,46 @@ type CustomActionMetadataTypeInputTypeEnum = "VISUALIZATION" | "ANSWER" | "WORKS * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class Table { +/** +* PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`. +*/ +declare class CreateScheduleRequestPdfOptions { /** - * Name of the table. + * Indicates whether to include complete Liveboard. */ - 'name': string; + 'complete_liveboard'?: boolean | null; /** - * Columns of the table. + * Indicates whether to include cover page with the Liveboard title. */ - 'columns'?: Array | null; + 'include_cover_page'?: boolean | null; /** - * Type of table. Either view or table + * Indicates whether to include customized wide logo in the footer if available. */ - 'type'?: string | null; + 'include_custom_logo'?: boolean | null; /** - * Description of the table + * Indicates whether to include a page with all applied filters. */ - 'description'?: string | null; + 'include_filter_page'?: boolean | null; /** - * Determines if the table is selected + * Indicates whether to include page number in the footer of each page */ - 'selected'?: boolean | null; + 'include_page_number'?: boolean | null; /** - * Determines if the table is linked + * Text to include in the footer of each page. */ - 'linked'?: boolean | null; + 'page_footer_text'?: string | null; /** - * List of relationships for the table + * Page orientation of the PDF. */ - 'relationships'?: Array | null; + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: CreateScheduleRequestPdfOptionsPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4168,6 +4165,7 @@ declare class Table { }[]; constructor(); } +type CreateScheduleRequestPdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -4180,16 +4178,15 @@ declare class Table { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SchemaObject { +declare class PrincipalsListItemInput { /** - * Name of the schema. + * Unique ID or name of the user or group. */ - 'name': string; + 'identifier': string; /** - * Tables in the schema. + * Principal type. */ - 'tables'?: Array | null; + 'type': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4218,19 +4215,18 @@ declare class SchemaObject { * Do not edit the class manually. */ -declare class Database { - /** - * Name of the database. - */ - 'name': string; +/** +* Recipients of the scheduled job notifications. Add the GUID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. +*/ +declare class CreateScheduleRequestRecipientDetails { /** - * Schemas of the database. + * Emails of the recipients. */ - 'schemas'?: Array | null; + 'emails'?: Array | null; /** - * Determines if the object is auto created. + * User or groups to be set as recipients of the schedule notifications. */ - 'auto_created'?: boolean | null; + 'principals'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4259,11 +4255,39 @@ declare class Database { * Do not edit the class manually. */ -declare class DataWarehouseObjects { +declare class CreateScheduleRequest { /** - * Databases of the connection. + * Name of the scheduled job. */ - 'databases': Array; + 'name': string; + /** + * Description of the job. + */ + 'description': string; + /** + * Type of the metadata object. + */ + 'metadata_type': CreateScheduleRequestMetadataTypeEnum; + /** + * Unique ID or name of the metadata object. + */ + 'metadata_identifier': string; + /** + * Export file format. + */ + 'file_format'?: CreateScheduleRequestFileFormatEnum; + 'liveboard_options'?: CreateScheduleRequestLiveboardOptions; + 'pdf_options'?: CreateScheduleRequestPdfOptions; + /** + * Time zone + */ + 'time_zone': CreateScheduleRequestTimeZoneEnum; + 'frequency'?: CreateScheduleRequestFrequency; + 'recipient_details': CreateScheduleRequestRecipientDetails; + /** + * Personalised view id of the liveboard to be scheduled. + */ + 'personalised_view_id'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4279,6 +4303,9 @@ declare class DataWarehouseObjects { }[]; constructor(); } +type CreateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; +type CreateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; +type CreateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; /** * ThoughtSpot Public REST API @@ -4291,14 +4318,15 @@ declare class DataWarehouseObjects { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DbtSearchResponse { - 'dbt_connection_identifier'?: string | null; - 'project_name'?: string | null; - 'connection_id'?: string | null; - 'connection_name'?: string | null; - 'cdw_database'?: string | null; - 'import_type'?: string | null; - 'author_name'?: string | null; +declare class CreateTagRequest { + /** + * Name of the tag. + */ + 'name': string; + /** + * Hex color code to be assigned to the tag. For example, #ff78a9. + */ + 'color'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4326,15 +4354,47 @@ declare class DbtSearchResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeactivateUserRequest { +declare class CreateUserGroupRequest { /** - * Unique ID or name of the user. + * Name of the group. The group name must be unique. */ - 'user_identifier': string; + 'name': string; /** - * Base url of the cluster. + * Display name for the group. */ - 'base_url': string; + 'display_name': string; + /** + * GUID of the Liveboards to assign as default Liveboards to the users in the group. + */ + 'default_liveboard_identifiers'?: Array; + /** + * Description of the group + */ + 'description'?: string; + /** + * Privileges to assign to the group + */ + 'privileges'?: Array; + /** + * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + */ + 'sub_group_identifiers'?: Array; + /** + * Group type. + */ + 'type'?: CreateUserGroupRequestTypeEnum; + /** + * GUID or name of the users to assign to the group. + */ + 'user_identifiers'?: Array; + /** + * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + */ + 'visibility'?: CreateUserGroupRequestVisibilityEnum; + /** + * Role identifiers of the roles that should be assigned to the group. + */ + 'role_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4350,6 +4410,9 @@ declare class DeactivateUserRequest { }[]; constructor(); } +type CreateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type CreateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -4362,14 +4425,15 @@ declare class DeactivateUserRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfig { +declare class FavoriteMetadataInput { /** - * Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Unique ID or name of the metadata object. */ - 'visibility'?: boolean | null; + 'identifier'?: string | null; + /** + * Type of metadata 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. + */ + 'type'?: FavoriteMetadataInputTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4385,6 +4449,7 @@ declare class DefaultActionConfig { }[]; constructor(); } +type FavoriteMetadataInputTypeEnum = "LIVEBOARD" | "ANSWER"; /** * ThoughtSpot Public REST API @@ -4397,14 +4462,84 @@ declare class DefaultActionConfig { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfigInput { + +declare class CreateUserRequest { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Name of the user. The username string must be unique. */ - 'visibility'?: boolean | null; + 'name': string; + /** + * A unique display name string for the user account, usually their first and last name + */ + 'display_name': string; + /** + * Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email. + */ + 'password'?: string; + /** + * Email of the user account + */ + 'email': string; + /** + * Type of the account. + */ + 'account_type'?: CreateUserRequestAccountTypeEnum; + /** + * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. + */ + 'account_status'?: CreateUserRequestAccountStatusEnum; + /** + * List of Org IDs to which the user belongs. + */ + 'org_identifiers'?: Array; + /** + * GUIDs or names of the groups to which the newly created user belongs. + */ + 'group_identifiers'?: Array; + /** + * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. + */ + 'visibility'?: CreateUserRequestVisibilityEnum; + /** + * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for revisiting the onboarding experience. + */ + 'show_onboarding_experience'?: boolean | null; + /** + * flag to get the on-boarding experience is completed or not. + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. + */ + 'home_liveboard_identifier'?: string; + /** + * Metadata objects to add to the user\'s favorites list. + */ + 'favorite_metadata'?: Array; + /** + * Locale for the user. + */ + 'preferred_locale'?: CreateUserRequestPreferredLocaleEnum; + /** + * Properties for the user + */ + 'extended_properties'?: any; + /** + * Preferences for the user + */ + 'extended_preferences'?: any; + /** + * Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled. + */ + 'trigger_welcome_email'?: boolean | null; + /** + * Flag to indicate whether activation email should be sent to the user. Default value for IAMv2 users is set to true. Users must either set this to false, or enter a valid password if they do not want to trigger an activation email. + */ + 'trigger_activation_email'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4420,6 +4555,10 @@ declare class DefaultActionConfigInput { }[]; constructor(); } +type CreateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type CreateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type CreateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type CreateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -4432,14 +4571,23 @@ declare class DefaultActionConfigInput { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfigInputCreate { +declare class CreateVariableRequest { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true + * Type of variable */ - 'visibility'?: boolean | null; + 'type': CreateVariableRequestTypeEnum; + /** + * Name of the variable. This is unique across the cluster. + */ + 'name': string; + /** + * If the variable contains sensitive values like passwords + */ + 'is_sensitive'?: boolean | null; + /** + * Variable Data Type + */ + 'data_type'?: CreateVariableRequestDataTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4455,6 +4603,8 @@ declare class DefaultActionConfigInputCreate { }[]; constructor(); } +type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE"; +type CreateVariableRequestDataTypeEnum = "VARCHAR" | "INT32" | "INT64" | "DOUBLE" | "DATE" | "DATE_TIME"; /** * ThoughtSpot Public REST API @@ -4467,14 +4617,15 @@ declare class DefaultActionConfigInputCreate { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfigSearchInput { +declare class WebhookAuthApiKeyInput { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * The header or query parameter name for the API key. */ - 'visibility'?: boolean | null; + 'key': string; + /** + * The API key value. + */ + 'value': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4502,11 +4653,15 @@ declare class DefaultActionConfigSearchInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteConfigRequest { +declare class WebhookAuthBasicAuthInput { /** - * Applicable when Orgs is enabled in the cluster Indicator to consider cluster level or org level config. Set it to false to delete configuration from current org. If set to true, then the configuration at cluster level and orgs that inherited the configuration from cluster level will be deleted. Version: 9.5.0.cl or later + * Username for basic authentication. */ - 'cluster_level'?: boolean | null; + 'username': string; + /** + * Password for basic authentication. + */ + 'password': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4534,15 +4689,19 @@ declare class DeleteConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteConnectionConfigurationRequest { +declare class WebhookAuthOAuth2Input { /** - * Unique ID or name of the configuration. + * OAuth2 authorization server URL. */ - 'configuration_identifier': string; + 'authorization_url': string; /** - * Unique ID or name of the connection. + * OAuth2 client identifier. */ - 'connection_identifier': string; + 'client_id': string; + /** + * OAuth2 client secret key. + */ + 'client_secret': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4570,11 +4729,18 @@ declare class DeleteConnectionConfigurationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteConnectionRequest { + +/** +* Authorization configuration for the webhook. +*/ +declare class CreateWebhookConfigurationRequestAuthentication { + 'API_KEY'?: WebhookAuthApiKeyInput; + 'BASIC_AUTH'?: WebhookAuthBasicAuthInput; /** - * Unique ID or name of the connection. + * Bearer token authentication configuration. */ - 'connection_identifier': string; + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2Input; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4603,17 +4769,25 @@ declare class DeleteConnectionRequest { * Do not edit the class manually. */ /** -* MetadataType InputType used in Delete MetadataType API +* Configuration for webhook signature verification. */ -declare class DeleteMetadataTypeInput { +declare class CreateWebhookConfigurationRequestSignatureVerification { /** - * Type of metadata. 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. + * Signature verification method type. */ - 'type'?: DeleteMetadataTypeInputTypeEnum | null; + 'type': CreateWebhookConfigurationRequestSignatureVerificationTypeEnum; /** - * Unique ID or name of the metadata object. + * HTTP header where the signature is sent. */ - 'identifier': string; + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4629,7 +4803,8 @@ declare class DeleteMetadataTypeInput { }[]; constructor(); } -type DeleteMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LOGICAL_RELATIONSHIP"; +type CreateWebhookConfigurationRequestSignatureVerificationTypeEnum = "HMAC_SHA256"; +type CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum = "SHA256"; /** * ThoughtSpot Public REST API @@ -4643,15 +4818,29 @@ type DeleteMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" * Do not edit the class manually. */ -declare class DeleteMetadataRequest { +declare class CreateWebhookConfigurationRequest { /** - * Metadata objects. + * Name of the webhook configuration. */ - 'metadata': Array; + 'name': string; /** - * Indicates whether to delete disabled metadata objects. + * Description of the webhook configuration. */ - 'delete_disabled_objects'?: boolean | null; + 'description'?: string; + /** + * The webhook endpoint URL. + */ + 'url': string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any; + /** + * List of events to subscribe to. + */ + 'events': Array; + 'authentication'?: CreateWebhookConfigurationRequestAuthentication; + 'signature_verification'?: CreateWebhookConfigurationRequestSignatureVerification; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4667,6 +4856,7 @@ declare class DeleteMetadataRequest { }[]; constructor(); } +type CreateWebhookConfigurationRequestEventsEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -4679,11 +4869,34 @@ declare class DeleteMetadataRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteOrgEmailCustomizationRequest { +/** +* Schedule selected cron expression. +*/ +declare class CronExpression { /** - * Unique identifier of the organization. + * Day of month of the object. */ - 'org_identifiers'?: Array; + 'day_of_month': string; + /** + * Day of Week of the object. + */ + 'day_of_week': string; + /** + * Hour of the object. + */ + 'hour': string; + /** + * Minute of the object. + */ + 'minute': string; + /** + * Month of the object. + */ + 'month': string; + /** + * Second of the object. + */ + 'second': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4711,23 +4924,18 @@ declare class DeleteOrgEmailCustomizationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeployCommitRequest { - /** - * Commit_id against which the files should be picked to deploy. Note: If no commit_id is specified, then the head of the branch is considered. - */ - 'commit_id'?: string; - /** - * Name of the remote branch where changes should be picked - */ - 'branch_name': string; +/** +* MetadataType InputType used in Custom Action API\'s +*/ +declare class CustomActionMetadataTypeInput { /** - * Indicates if all files or only modified file at specified commit point should be considered + * Type of metadata 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. */ - 'deploy_type'?: DeployCommitRequestDeployTypeEnum; + 'type'?: CustomActionMetadataTypeInputTypeEnum | null; /** - * Define the policy to follow while importing TML in the ThoughtSpot environment. Use “ALL_OR_NONE” to cancel the deployment of all ThoughtSpot objects if at least one of them fails to import. Use “Partial” to import ThoughtSpot objects that validate successfully even if other objects in the same deploy operations fail to import. + * Unique ID or name of the metadata object. */ - 'deploy_policy'?: DeployCommitRequestDeployPolicyEnum; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4743,8 +4951,7 @@ declare class DeployCommitRequest { }[]; constructor(); } -type DeployCommitRequestDeployTypeEnum = "FULL" | "DELTA"; -type DeployCommitRequestDeployPolicyEnum = "ALL_OR_NONE" | "PARTIAL" | "VALIDATE_ONLY"; +type CustomActionMetadataTypeInputTypeEnum = "VISUALIZATION" | "ANSWER" | "WORKSHEET"; /** * ThoughtSpot Public REST API @@ -4757,27 +4964,19 @@ type DeployCommitRequestDeployPolicyEnum = "ALL_OR_NONE" | "PARTIAL" | "VALIDATE * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeployResponse { - /** - * Name of the file deployed - */ - 'file_name'?: string | null; - /** - * Name of the metadata object - */ - 'metadata_name'?: string | null; +declare class EntityHeader { /** - * Type of the metadata object + * Description of the data source. */ - 'metadata_type'?: string | null; + 'description'?: string | null; /** - * Indicates the status of deployment for the file + * Display name of the data source. */ - 'status_code'?: string | null; + 'data_source_name'?: string | null; /** - * Any error or warning with the deployment + * Unique identifier of the data source. */ - 'status_message'?: string | null; + 'data_source_identifier'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4805,8 +5004,17 @@ declare class DeployResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ErrorResponse { - 'error'?: any | null; + +declare class DataSource { + /** + * Confidence score for the data source suggestion. + */ + 'confidence'?: number | null; + 'details'?: EntityHeader; + /** + * LLM reasoning for the data source. + */ + 'reasoning'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4834,19 +5042,36 @@ declare class ErrorResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class EurekaLLMSuggestedQuery { + +declare class Table { /** - * NL query that can be run using spotter aka natural language search to get an AI generated answer. + * Name of the table. */ - 'query'?: string | null; + 'name': string; /** - * Unique identifier of the worksheet on which this query can be run on. + * Columns of the table. */ - 'worksheetId'?: string | null; + 'columns'?: Array | null; /** - * Display name of the worksheet on which this query can be run on. + * Type of table. Either view or table */ - 'worksheetName'?: string | null; + 'type'?: string | null; + /** + * Description of the table + */ + 'description'?: string | null; + /** + * Determines if the table is selected + */ + 'selected'?: boolean | null; + /** + * Determines if the table is linked + */ + 'linked'?: boolean | null; + /** + * List of relationships for the table + */ + 'relationships'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4875,11 +5100,15 @@ declare class EurekaLLMSuggestedQuery { * Do not edit the class manually. */ -declare class EurekaLLMDecomposeQueryResponse { +declare class SchemaObject { /** - * List of analytical questions that can be run on their respective worksheet/data sources. + * Name of the schema. */ - 'decomposedQueries'?: Array | null; + 'name': string; + /** + * Tables in the schema. + */ + 'tables'?: Array
| null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4908,8 +5137,19 @@ declare class EurekaLLMDecomposeQueryResponse { * Do not edit the class manually. */ -declare class EurekaDecomposeQueryResponse { - 'decomposedQueryResponse'?: EurekaLLMDecomposeQueryResponse; +declare class Database { + /** + * Name of the database. + */ + 'name': string; + /** + * Schemas of the database. + */ + 'schemas'?: Array | null; + /** + * Determines if the object is auto created. + */ + 'auto_created'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4937,15 +5177,12 @@ declare class EurekaDecomposeQueryResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ExcludeMetadataListItemInput { - /** - * Unique ID or name of the metadata. - */ - 'identifier': string; + +declare class DataWarehouseObjects { /** - * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view 5. CONNECTION for connection objects 6. TAG for tag objects 7. USER for user objects 8. USER_GROUP for group objects 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values. 10. INSIGHT_SPEC for SpotIQ objects + * Databases of the connection. */ - 'type': ExcludeMetadataListItemInputTypeEnum; + 'databases': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4961,7 +5198,6 @@ declare class ExcludeMetadataListItemInput { }[]; constructor(); } -type ExcludeMetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -4974,26 +5210,14 @@ type ExcludeMetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options for specific region specific overrides to support date/number/string/currency formatting. -*/ -declare class ExportAnswerReportRequestRegionalSettings { - /** - * ISO code to be appended with currency values. - */ - 'currency_format'?: ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum | null; - /** - * Indicates the locale to be used for all formattings. - */ - 'user_locale'?: ExportAnswerReportRequestRegionalSettingsUserLocaleEnum | null; - /** - * Indicates the locale to be used for number formatting. - */ - 'number_format_locale'?: ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum | null; - /** - * Indicates the locale to be used for date formatting. - */ - 'date_format_locale'?: ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum | null; +declare class DbtSearchResponse { + 'dbt_connection_identifier'?: string | null; + 'project_name'?: string | null; + 'connection_id'?: string | null; + 'connection_name'?: string | null; + 'cdw_database'?: string | null; + 'import_type'?: string | null; + 'author_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5009,10 +5233,6 @@ declare class ExportAnswerReportRequestRegionalSettings { }[]; constructor(); } -type ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; -type ExportAnswerReportRequestRegionalSettingsUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -5025,37 +5245,15 @@ type ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum = "en-CA" | " * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ExportAnswerReportRequest { - /** - * Unique ID or name of the metadata object. - */ - 'metadata_identifier'?: string; - /** - * Unique ID of the answer session. - */ - 'session_identifier'?: string; - /** - * Generation number of the answer session. - */ - 'generation_number'?: number; - /** - * Export file format. - */ - 'file_format'?: ExportAnswerReportRequestFileFormatEnum; - /** - * JSON string representing runtime filter. { col1:region, op1: EQ, val1: northeast } - */ - 'runtime_filter'?: any; +declare class DeactivateUserRequest { /** - * JSON string representing runtime sort. { sortCol1: region, asc1 :true, sortCol2 : date } + * Unique ID or name of the user. */ - 'runtime_sort'?: any; + 'user_identifier': string; /** - * JSON object for setting values of parameters in runtime. + * Base url of the cluster. */ - 'runtime_param_override'?: any; - 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; + 'base_url': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5071,7 +5269,6 @@ declare class ExportAnswerReportRequest { }[]; constructor(); } -type ExportAnswerReportRequestFileFormatEnum = "CSV" | "PDF" | "XLSX" | "PNG"; /** * ThoughtSpot Public REST API @@ -5085,37 +5282,13 @@ type ExportAnswerReportRequestFileFormatEnum = "CSV" | "PDF" | "XLSX" | "PNG"; * Do not edit the class manually. */ /** -* Options for PDF export. +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. */ -declare class ExportLiveboardReportRequestPdfOptions { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page. - */ - 'include_page_number'?: boolean | null; - /** - * Page orientation of the PDF. - */ - 'page_orientation'?: ExportLiveboardReportRequestPdfOptionsPageOrientationEnum | null; - /** - * Indicates whether to include only the first page of the tables. - */ - 'truncate_table'?: boolean | null; +declare class DefaultActionConfig { /** - * Text to include in the footer of each page. + * Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. */ - 'page_footer_text'?: string | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5131,7 +5304,6 @@ declare class ExportLiveboardReportRequestPdfOptions { }[]; constructor(); } -type ExportLiveboardReportRequestPdfOptionsPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; /** * ThoughtSpot Public REST API @@ -5145,33 +5317,13 @@ type ExportLiveboardReportRequestPdfOptionsPageOrientationEnum = "PORTRAIT" | "L * Do not edit the class manually. */ /** -* Options for PNG export. +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. */ -declare class ExportLiveboardReportRequestPngOptions { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates personalised view of the Liveboard in case of png - */ - 'personalised_view_id'?: string | null; - /** - * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later - */ - 'image_resolution'?: number | null; - /** - * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later - */ - 'image_scale'?: number | null; +declare class DefaultActionConfigInput { /** - * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. */ - 'include_header'?: boolean | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5199,51 +5351,14 @@ declare class ExportLiveboardReportRequestPngOptions { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ExportLiveboardReportRequest { - /** - * GUID or name of the Liveboard object. - */ - 'metadata_identifier': string; - /** - * GUID or name of the tab of the Liveboard object. Version: 10.9.0.cl or later - */ - 'tab_identifiers'?: Array; - /** - * GUID or name of the personalised view of the Liveboard object. Version: 10.9.0.cl or later - */ - 'personalised_view_identifier'?: string; - /** - * GUID or name of visualizations on the Liveboard. If this parameter is not defined, the API returns a report with all visualizations saved on a Liveboard. - */ - 'visualization_identifiers'?: Array; - /** - * Transient content of the Liveboard. - */ - 'transient_content'?: string; - /** - * Export file format. - */ - 'file_format'?: ExportLiveboardReportRequestFileFormatEnum; - /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"region\", \"op1\": \"EQ\", \"val1\": \"northeast\" }. You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). - */ - 'runtime_filter'?: any; - /** - * Applied to the liveboard and overrides any filters already applied on the same columns in liveboard. Following example illustrate different kinds of filters: { \"override_filters\": [ { \"column_name\": \"Color\", \"generic_filter\": { \"op\": \"IN\", \"values\": [ \"almond\", \"turquoise\" ] }, \"negate\": false }, { \"column_name\": \"Commit Date\", \"date_filter\": { \"datePeriod\": \"HOUR\", \"number\": 3, \"type\": \"LAST_N_PERIOD\", \"op\": \"EQ\" } }, { \"column_name\": \"Sales\", \"generic_filter\": { \"op\": \"BW_INC\", \"values\": [ \"100000\", \"70000\" ] }, \"negate\": true } ] } - */ - 'override_filters'?: any; - /** - * JSON string representing runtime sort. For example, {\"sortCol1\": \"region\", \"asc1\" : true}. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). - */ - 'runtime_sort'?: any; - 'pdf_options'?: ExportLiveboardReportRequestPdfOptions; - 'png_options'?: ExportLiveboardReportRequestPngOptions; +/** +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. +*/ +declare class DefaultActionConfigInputCreate { /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true */ - 'runtime_param_override'?: any; - 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5259,7 +5374,6 @@ declare class ExportLiveboardReportRequest { }[]; constructor(); } -type ExportLiveboardReportRequestFileFormatEnum = "PDF" | "PNG"; /** * ThoughtSpot Public REST API @@ -5272,31 +5386,14 @@ type ExportLiveboardReportRequestFileFormatEnum = "PDF" | "PNG"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ExportMetadataTMLBatchedRequest { - /** - * Type of metadata object to export, can be one of USER | ROLE | USER_GROUP - */ - 'metadata_type': ExportMetadataTMLBatchedRequestMetadataTypeEnum; - /** - * Indicates the position within the complete set from where the API should begin returning objects. - */ - 'batch_offset'?: number; - /** - * Determines the number of objects or items to be retrieved in a single request. - */ - 'batch_size'?: number; - /** - * TML EDOC content format. - */ - 'edoc_format'?: ExportMetadataTMLBatchedRequestEdocFormatEnum; - /** - * Indicates whether to export dependent metadata objects of specified metadata objects. - */ - 'export_dependent'?: boolean | null; +/** +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. +*/ +declare class DefaultActionConfigSearchInput { /** - * Indicates whether to export is happening from all orgs context. + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. */ - 'all_orgs_override'?: boolean | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5312,8 +5409,6 @@ declare class ExportMetadataTMLBatchedRequest { }[]; constructor(); } -type ExportMetadataTMLBatchedRequestMetadataTypeEnum = "USER" | "USER_GROUP" | "ROLE"; -type ExportMetadataTMLBatchedRequestEdocFormatEnum = "JSON" | "YAML"; /** * ThoughtSpot Public REST API @@ -5326,30 +5421,11 @@ type ExportMetadataTMLBatchedRequestEdocFormatEnum = "JSON" | "YAML"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Flags to specify additional options for export. Version: 10.6.0.cl or later -*/ -declare class ExportMetadataTMLRequestExportOptions { - /** - * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_obj_id_ref'?: boolean | null; - /** - * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_guid'?: boolean | null; - /** - * 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. - */ - 'include_obj_id'?: boolean | null; - /** - * 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 - */ - 'export_with_associated_feedbacks'?: boolean | null; +declare class DeleteConfigRequest { /** - * 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 + * Applicable when Orgs is enabled in the cluster Indicator to consider cluster level or org level config. Set it to false to delete configuration from current org. If set to true, then the configuration at cluster level and orgs that inherited the configuration from cluster level will be deleted. Version: 9.5.0.cl or later */ - 'export_column_security_rules'?: boolean | null; + 'cluster_level'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5377,26 +5453,15 @@ declare class ExportMetadataTMLRequestExportOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* MetadataType InputType used in Export MetadataType API -*/ -declare class ExportMetadataTypeInput { - /** - * Type of metadata. 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. - */ - 'type'?: ExportMetadataTypeInputTypeEnum | null; - /** - * Unique ID or name of the metadata object. Not required if the metadata type is ANSWER when session_id and generation_number is set. - */ - 'identifier'?: string | null; +declare class DeleteConnectionConfigurationRequest { /** - * Unique ID of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + * Unique ID or name of the configuration. */ - 'session_identifier'?: string | null; + 'configuration_identifier': string; /** - * Generation Number of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + * Unique ID or name of the connection. */ - 'generation_number'?: number | null; + 'connection_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5412,7 +5477,6 @@ declare class ExportMetadataTypeInput { }[]; constructor(); } -type ExportMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CONNECTION" | "CUSTOM_ACTION" | "USER" | "USER_GROUP" | "ROLE" | "FEEDBACK"; /** * ThoughtSpot Public REST API @@ -5425,41 +5489,11 @@ type ExportMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ExportMetadataTMLRequest { - /** - * Metadata objects. - */ - 'metadata': Array; - /** - * Indicates whether to export associated metadata objects of specified metadata objects. - */ - 'export_associated'?: boolean | null; - /** - * Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects, the API returns the Liveboard TML data with the FQNs of the referenced worksheet. If the exported TML data includes FQNs, you don\'t need to manually add FQNs of the referenced objects during TML import. - */ - 'export_fqn'?: boolean | null; - /** - * TML EDOC content format. **Note: exporting in YAML format currently requires manual formatting of the output. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** - */ - 'edoc_format'?: ExportMetadataTMLRequestEdocFormatEnum; - /** - * Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version. - */ - 'export_schema_version'?: ExportMetadataTMLRequestExportSchemaVersionEnum; - /** - * Indicates whether to export table while exporting connection. - */ - 'export_dependent'?: boolean | null; - /** - * Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard. This will only be active when export_associated is true. - */ - 'export_connection_as_dependent'?: boolean | null; +declare class DeleteConnectionRequest { /** - * Indicates whether to export is happening from all orgs context. + * Unique ID or name of the connection. */ - 'all_orgs_override'?: boolean | null; - 'export_options'?: ExportMetadataTMLRequestExportOptions; + 'connection_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5475,8 +5509,6 @@ declare class ExportMetadataTMLRequest { }[]; constructor(); } -type ExportMetadataTMLRequestEdocFormatEnum = "JSON" | "YAML"; -type ExportMetadataTMLRequestExportSchemaVersionEnum = "DEFAULT" | "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -5490,29 +5522,17 @@ type ExportMetadataTMLRequestExportSchemaVersionEnum = "DEFAULT" | "V1" | "V2"; * Do not edit the class manually. */ /** -* Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled. +* MetadataType InputType used in Delete MetadataType API */ -declare class ExportOptions { - /** - * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_obj_id_ref'?: boolean | null; - /** - * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_guid'?: boolean | null; - /** - * 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. - */ - 'include_obj_id'?: boolean | null; +declare class DeleteMetadataTypeInput { /** - * 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 + * Type of metadata. 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. */ - 'export_with_associated_feedbacks'?: boolean | null; + 'type'?: DeleteMetadataTypeInputTypeEnum | null; /** - * 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 + * Unique ID or name of the metadata object. */ - 'export_column_security_rules'?: boolean | null; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5528,6 +5548,7 @@ declare class ExportOptions { }[]; constructor(); } +type DeleteMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LOGICAL_RELATIONSHIP"; /** * ThoughtSpot Public REST API @@ -5540,23 +5561,16 @@ declare class ExportOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ExternalTableInput { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Name of the database. - */ - 'database_name'?: string | null; + +declare class DeleteMetadataRequest { /** - * Name of the schema. + * Metadata objects. */ - 'schema_name'?: string | null; + 'metadata': Array; /** - * Name of the table. Table names may be case-sensitive depending on the database system. + * Indicates whether to delete disabled metadata objects. */ - 'table_name': string; + 'delete_disabled_objects'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5584,19 +5598,11 @@ declare class ExternalTableInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FavoriteMetadataItem { - /** - * Unique ID of the metadata object. - */ - 'id': string; - /** - * name of the metadata object. - */ - 'name': string; +declare class DeleteOrgEmailCustomizationRequest { /** - * Type of metadata 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. + * Unique identifier of the organization. */ - 'type': FavoriteMetadataItemTypeEnum; + 'org_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5612,7 +5618,6 @@ declare class FavoriteMetadataItem { }[]; constructor(); } -type FavoriteMetadataItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; /** * ThoughtSpot Public REST API @@ -5625,18 +5630,11 @@ type FavoriteMetadataItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | " * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Favorite object options. -*/ -declare class FavoriteObjectOptionsInput { +declare class DeleteWebhookConfigurationsRequest { /** - * Includes objects marked as favorite for the specified users. + * List of webhook identifiers to delete. */ - 'include'?: boolean | null; - /** - * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. - */ - 'user_identifiers'?: Array | null; + 'webhook_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5664,35 +5662,23 @@ declare class FavoriteObjectOptionsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchAnswerDataRequest { - /** - * GUID or name of the Answer. - */ - 'metadata_identifier': string; - /** - * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. - */ - 'data_format'?: FetchAnswerDataRequestDataFormatEnum; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; +declare class DeployCommitRequest { /** - * The number of records to include in a batch. + * Commit_id against which the files should be picked to deploy. Note: If no commit_id is specified, then the head of the branch is considered. */ - 'record_size'?: number; + 'commit_id'?: string; /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). + * Name of the remote branch where changes should be picked */ - 'runtime_filter'?: any; + 'branch_name': string; /** - * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). + * Indicates if all files or only modified file at specified commit point should be considered */ - 'runtime_sort'?: any; + 'deploy_type'?: DeployCommitRequestDeployTypeEnum; /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * Define the policy to follow while importing TML in the ThoughtSpot environment. Use “ALL_OR_NONE” to cancel the deployment of all ThoughtSpot objects if at least one of them fails to import. Use “Partial” to import ThoughtSpot objects that validate successfully even if other objects in the same deploy operations fail to import. */ - 'runtime_param_override'?: any; + 'deploy_policy'?: DeployCommitRequestDeployPolicyEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5708,7 +5694,8 @@ declare class FetchAnswerDataRequest { }[]; constructor(); } -type FetchAnswerDataRequestDataFormatEnum = "FULL" | "COMPACT"; +type DeployCommitRequestDeployTypeEnum = "FULL" | "DELTA"; +type DeployCommitRequestDeployPolicyEnum = "ALL_OR_NONE" | "PARTIAL" | "VALIDATE_ONLY"; /** * ThoughtSpot Public REST API @@ -5721,11 +5708,27 @@ type FetchAnswerDataRequestDataFormatEnum = "FULL" | "COMPACT"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchAnswerSqlQueryRequest { +declare class DeployResponse { /** - * ID or name of an Answer. + * Name of the file deployed */ - 'metadata_identifier': string; + 'file_name'?: string | null; + /** + * Name of the metadata object + */ + 'metadata_name'?: string | null; + /** + * Type of the metadata object + */ + 'metadata_type'?: string | null; + /** + * Indicates the status of deployment for the file + */ + 'status_code'?: string | null; + /** + * Any error or warning with the deployment + */ + 'status_message'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5753,31 +5756,8 @@ declare class FetchAnswerSqlQueryRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchAsyncImportTaskStatusRequest { - /** - * List of task IDs to fetch status for. - */ - 'task_ids'?: Array; - /** - * List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED] - */ - 'task_status'?: Array; - /** - * Author GUID or name of async import tasks to filter on. - */ - 'author_identifier'?: string; - /** - * The offset point, starting from where the task status should be included in the response. - */ - 'record_offset'?: number; - /** - * The number of task statuses that should be included in the response starting from offset position. - */ - 'record_size'?: number; - /** - * Boolean flag to specify whether to include import response in the task status objects. - */ - 'include_import_response'?: boolean | null; +declare class ErrorResponse { + 'error'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5793,7 +5773,6 @@ declare class FetchAsyncImportTaskStatusRequest { }[]; constructor(); } -type FetchAsyncImportTaskStatusRequestTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; /** * ThoughtSpot Public REST API @@ -5807,11 +5786,11 @@ type FetchAsyncImportTaskStatusRequestTaskStatusEnum = "COMPLETED" | "IN_QUEUE" * Do not edit the class manually. */ -declare class FetchColumnSecurityRulesRequest { +declare class EurekaDataSourceSuggestionResponse { /** - * Array of table identifier objects for which to fetch column security rules + * List of data sources suggested. */ - 'tables': Array; + 'data_sources'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5839,11 +5818,19 @@ declare class FetchColumnSecurityRulesRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchConnectionDiffStatusResponse { +declare class EurekaLLMSuggestedQuery { /** - * Status of the connection diff. + * NL query that can be run using spotter aka natural language search to get an AI generated answer. */ - 'status'?: boolean | null; + 'query'?: string | null; + /** + * Unique identifier of the worksheet on which this query can be run on. + */ + 'worksheetId'?: string | null; + /** + * Display name of the worksheet on which this query can be run on. + */ + 'worksheetName'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5871,43 +5858,12 @@ declare class FetchConnectionDiffStatusResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchLiveboardDataRequest { - /** - * GUID or name of the Liveboard. - */ - 'metadata_identifier': string; - /** - * GUIDs or names of the visualizations on the Liveboard. - */ - 'visualization_identifiers'?: Array; - /** - * Transient content of the Liveboard. - */ - 'transient_content'?: string; - /** - * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. - */ - 'data_format'?: FetchLiveboardDataRequestDataFormatEnum; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records to include in a batch. - */ - 'record_size'?: number; - /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). - */ - 'runtime_filter'?: any; - /** - * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). - */ - 'runtime_sort'?: any; + +declare class EurekaLLMDecomposeQueryResponse { /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * List of analytical questions that can be run on their respective worksheet/data sources. */ - 'runtime_param_override'?: any; + 'decomposedQueries'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5923,7 +5879,6 @@ declare class FetchLiveboardDataRequest { }[]; constructor(); } -type FetchLiveboardDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -5936,15 +5891,9 @@ type FetchLiveboardDataRequestDataFormatEnum = "FULL" | "COMPACT"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchLiveboardSqlQueryRequest { - /** - * ID or name of the Liveboard. - */ - 'metadata_identifier': string; - /** - * Unique ID or name of visualizations. - */ - 'visualization_identifiers'?: Array; + +declare class EurekaDecomposeQueryResponse { + 'decomposedQueryResponse'?: EurekaLLMDecomposeQueryResponse; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5972,23 +5921,15 @@ declare class FetchLiveboardSqlQueryRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchLogsRequest { - /** - * Name of the log type - */ - 'log_type': FetchLogsRequestLogTypeEnum; - /** - * Start time in EPOCH format - */ - 'start_epoch_time_in_millis'?: number; +declare class NLInstructionsInfo { /** - * End time in EPOCH format + * User instructions for natural language processing. */ - 'end_epoch_time_in_millis'?: number; + 'instructions': Array; /** - * Fetch all the logs. This is available from 9.10.5.cl + * Scope of the instruction. */ - 'get_all_logs'?: boolean | null; + 'scope': NLInstructionsInfoScopeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6004,7 +5945,7 @@ declare class FetchLogsRequest { }[]; constructor(); } -type FetchLogsRequestLogTypeEnum = "SECURITY_AUDIT"; +type NLInstructionsInfoScopeEnum = "GLOBAL"; /** * ThoughtSpot Public REST API @@ -6017,18 +5958,12 @@ type FetchLogsRequestLogTypeEnum = "SECURITY_AUDIT"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* MetadataType InputType used in Permission API\'s -*/ -declare class PermissionsMetadataTypeInput { - /** - * Type of metadata 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. - */ - 'type'?: PermissionsMetadataTypeInputTypeEnum | null; + +declare class EurekaGetNLInstructionsResponse { /** - * Unique ID or name of the metadata object. + * List of NL instructions with their scopes. */ - 'identifier': string; + 'nl_instructions_info': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6044,7 +5979,6 @@ declare class PermissionsMetadataTypeInput { }[]; constructor(); } -type PermissionsMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -6057,15 +5991,19 @@ type PermissionsMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PrincipalsInput { +declare class EurekaRelevantQuestion { /** - * Unique ID or name of the principal object such as a user or group. + * NL query that can be run using spotter aka natural language search to get an AI generated answer. */ - 'identifier': string; + 'query'?: string | null; /** - * Principal type. + * Unique identifier of the data source on which this query can be run on. */ - 'type'?: PrincipalsInputTypeEnum | null; + 'data_source_identifier'?: string | null; + /** + * Display name of the data source on which this query can be run on. + */ + 'data_source_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6081,7 +6019,6 @@ declare class PrincipalsInput { }[]; constructor(); } -type PrincipalsInputTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -6095,27 +6032,11 @@ type PrincipalsInputTypeEnum = "USER" | "USER_GROUP"; * Do not edit the class manually. */ -declare class FetchPermissionsOfPrincipalsRequest { - /** - * GUID or name of the user or group. - */ - 'principals': Array; - /** - * Metadata objects for which you want to fetch permission details. If not specified, the API returns permission details for all metadata objects that the specified users and groups can access. - */ - 'metadata'?: Array; - /** - * The starting record number from where the records should be included for each metadata type. - */ - 'record_offset'?: number; - /** - * The number of records that should be included for each metadata type. - */ - 'record_size'?: number; +declare class EurekaGetRelevantQuestionsResponse { /** - * When no metadata objects input is passed, metadata objects of this type are fetched. + * List of relevant questions that can be run on their respective data sources. */ - 'default_metadata_type'?: FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum; + 'relevant_questions'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6131,7 +6052,6 @@ declare class FetchPermissionsOfPrincipalsRequest { }[]; constructor(); } -type FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum = "ALL" | "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -6144,32 +6064,11 @@ type FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum = "ALL" | "LIVEB * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class FetchPermissionsOnMetadataRequest { - /** - * GUID or name of the metadata object. - */ - 'metadata': Array; - /** - * User or group objects for which you want to fetch permissions. If not specified, the API returns all users and groups that can access the specified metadata objects. - */ - 'principals'?: Array; - /** - * Indicates whether to fetch permissions of dependent metadata objects. - */ - 'include_dependent_objects'?: boolean | null; - /** - * The starting record number from where the records should be included for each metadata type. - */ - 'record_offset'?: number; - /** - * The number of records that should be included for each metadata type. - */ - 'record_size'?: number; +declare class EurekaSetNLInstructionsResponse { /** - *
Version: 10.3.0.cl or later
Specifies the type of permission. Valid values are: EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong. DEFINED - If a user or user group received access to metadata objects via object sharing by another user. + * Success status of the operation. */ - 'permission_type'?: string; + 'success': boolean; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6197,22 +6096,15 @@ declare class FetchPermissionsOnMetadataRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Filter Rules to be applied on Objects. -*/ -declare class FilterRules { - /** - * The name of the column to apply the filter on. - */ - 'column_name': string; +declare class ExcludeMetadataListItemInput { /** - * The operator to use for filtering. Example: EQ (equals), GT(greater than), etc. + * Unique ID or name of the metadata. */ - 'operator': FilterRulesOperatorEnum; + 'identifier': string; /** - * The values to filter on. To get all records, use TS_WILDCARD_ALL as values. + * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view 5. CONNECTION for connection objects 6. TAG for tag objects 7. USER for user objects 8. USER_GROUP for group objects 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values. 10. INSIGHT_SPEC for SpotIQ objects */ - 'values': Array; + 'type': ExcludeMetadataListItemInputTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6228,7 +6120,7 @@ declare class FilterRules { }[]; constructor(); } -type FilterRulesOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; +type ExcludeMetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -6241,11 +6133,26 @@ type FilterRulesOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ForceLogoutUsersRequest { +/** +* Options for specific region specific overrides to support date/number/string/currency formatting. +*/ +declare class ExportAnswerReportRequestRegionalSettings { /** - * GUID or name of the users for force logging out their sessions. + * ISO code to be appended with currency values. */ - 'user_identifiers'?: Array; + 'currency_format'?: ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum | null; + /** + * Indicates the locale to be used for all formattings. + */ + 'user_locale'?: ExportAnswerReportRequestRegionalSettingsUserLocaleEnum | null; + /** + * Indicates the locale to be used for number formatting. + */ + 'number_format_locale'?: ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum | null; + /** + * Indicates the locale to be used for date formatting. + */ + 'date_format_locale'?: ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6261,6 +6168,10 @@ declare class ForceLogoutUsersRequest { }[]; constructor(); } +type ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; +type ExportAnswerReportRequestRegionalSettingsUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -6274,11 +6185,36 @@ declare class ForceLogoutUsersRequest { * Do not edit the class manually. */ -/** -* Configuration of schedule with cron expression -*/ -declare class Frequency { - 'cron_expression': CronExpression; +declare class ExportAnswerReportRequest { + /** + * Unique ID or name of the metadata object. + */ + 'metadata_identifier'?: string; + /** + * Unique ID of the answer session. + */ + 'session_identifier'?: string; + /** + * Generation number of the answer session. + */ + 'generation_number'?: number; + /** + * Export file format. + */ + 'file_format'?: ExportAnswerReportRequestFileFormatEnum; + /** + * JSON string representing runtime filter. { col1:region, op1: EQ, val1: northeast } + */ + 'runtime_filter'?: any; + /** + * JSON string representing runtime sort. { sortCol1: region, asc1 :true, sortCol2 : date } + */ + 'runtime_sort'?: any; + /** + * JSON object for setting values of parameters in runtime. + */ + 'runtime_param_override'?: any; + 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6294,6 +6230,7 @@ declare class Frequency { }[]; constructor(); } +type ExportAnswerReportRequestFileFormatEnum = "CSV" | "PDF" | "XLSX" | "PNG"; /** * ThoughtSpot Public REST API @@ -6306,68 +6243,38 @@ declare class Frequency { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Configuration of schedule with cron expression +* Options for PDF export. */ -declare class FrequencyInput { - 'cron_expression': CronExpressionInput; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} - -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class GenerateCSVRequest { +declare class ExportLiveboardReportRequestPdfOptions { /** - * Start date for the calendar in `MM/dd/yyyy` format. + * Indicates whether to include the cover page with the Liveboard title. */ - 'start_date': string; + 'include_cover_page'?: boolean | null; /** - * End date for the calendar in `MM/dd/yyyy` format. + * Indicates whether to include customized wide logo in the footer if available. */ - 'end_date': string; + 'include_custom_logo'?: boolean | null; /** - * Type of the calendar. + * Indicates whether to include a page with all applied filters. */ - 'calendar_type'?: GenerateCSVRequestCalendarTypeEnum; + 'include_filter_page'?: boolean | null; /** - * Month offset to start calendar from `January`. + * Indicates whether to include page number in the footer of each page. */ - 'month_offset'?: GenerateCSVRequestMonthOffsetEnum; + 'include_page_number'?: boolean | null; /** - * Specify the starting day of the week. + * Page orientation of the PDF. */ - 'start_day_of_week'?: GenerateCSVRequestStartDayOfWeekEnum; + 'page_orientation'?: ExportLiveboardReportRequestPdfOptionsPageOrientationEnum | null; /** - * Prefix to add before the quarter. + * Indicates whether to include only the first page of the tables. */ - 'quarter_name_prefix'?: string; + 'truncate_table'?: boolean | null; /** - * Prefix to add before the year. + * Text to include in the footer of each page. */ - 'year_name_prefix'?: string; + 'page_footer_text'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6383,9 +6290,7 @@ declare class GenerateCSVRequest { }[]; constructor(); } -type GenerateCSVRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; -type GenerateCSVRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; -type GenerateCSVRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; +type ExportLiveboardReportRequestPdfOptionsPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; /** * ThoughtSpot Public REST API @@ -6398,9 +6303,34 @@ type GenerateCSVRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "W * https://openapi-generator.tech * Do not edit the class manually. */ -declare class GenericInfo { - 'id'?: string | null; - 'name'?: string | null; +/** +* Options for PNG export. +*/ +declare class ExportLiveboardReportRequestPngOptions { + /** + * Indicates whether to include the cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates personalised view of the Liveboard in case of png + */ + 'personalised_view_id'?: string | null; + /** + * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later + */ + 'image_resolution'?: number | null; + /** + * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later + */ + 'image_scale'?: number | null; + /** + * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later + */ + 'include_header'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6428,67 +6358,51 @@ declare class GenericInfo { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportEPackAsyncTaskStatus { - /** - * GUID of tenant from which the task is initiated. - */ - 'tenant_id'?: string | null; - /** - * Organisation ID of the user who initiated the task. - */ - 'org_id'?: number | null; - /** - * Unique identifier for the task. - */ - 'task_id'?: string | null; - /** - * Name of the task. - */ - 'task_name'?: string | null; - /** - * Response of imported objects so far. - */ - 'import_response'?: any | null; + +declare class ExportLiveboardReportRequest { /** - * Current status of the task. + * GUID or name of the Liveboard object. */ - 'task_status'?: ImportEPackAsyncTaskStatusTaskStatusEnum | null; + 'metadata_identifier': string; /** - * ID of the user who initiated the task. + * GUID or name of the tab of the Liveboard object. Version: 10.9.0.cl or later */ - 'author_id'?: string | null; + 'tab_identifiers'?: Array; /** - * Policy used for the import task. + * GUID or name of the personalised view of the Liveboard object. Version: 10.9.0.cl or later */ - 'import_policy'?: ImportEPackAsyncTaskStatusImportPolicyEnum | null; + 'personalised_view_identifier'?: string; /** - * Time when the task was created (in ms since epoch). + * GUID or name of visualizations on the Liveboard. If this parameter is not defined, the API returns a report with all visualizations saved on a Liveboard. */ - 'created_at'?: number | null; + 'visualization_identifiers'?: Array; /** - * Time when the task started (in ms since epoch). + * Transient content of the Liveboard. */ - 'in_progress_at'?: number | null; + 'transient_content'?: string; /** - * Time when the task was completed (in ms since epoch). + * Export file format. */ - 'completed_at'?: number | null; + 'file_format'?: ExportLiveboardReportRequestFileFormatEnum; /** - * Total number of objects to process. + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"region\", \"op1\": \"EQ\", \"val1\": \"northeast\" }. You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). */ - 'total_object_count'?: number | null; + 'runtime_filter'?: any; /** - * Number of objects processed so far. + * Applied to the liveboard and overrides any filters already applied on the same columns in liveboard. Following example illustrate different kinds of filters: { \"override_filters\": [ { \"column_name\": \"Color\", \"generic_filter\": { \"op\": \"IN\", \"values\": [ \"almond\", \"turquoise\" ] }, \"negate\": false }, { \"column_name\": \"Commit Date\", \"date_filter\": { \"datePeriod\": \"HOUR\", \"number\": 3, \"type\": \"LAST_N_PERIOD\", \"op\": \"EQ\" } }, { \"column_name\": \"Sales\", \"generic_filter\": { \"op\": \"BW_INC\", \"values\": [ \"100000\", \"70000\" ] }, \"negate\": true } ] } */ - 'object_processed_count'?: number | null; + 'override_filters'?: any; /** - * Last time the task status was updated (in ms since epoch). + * JSON string representing runtime sort. For example, {\"sortCol1\": \"region\", \"asc1\" : true}. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). */ - 'modified_at'?: number | null; + 'runtime_sort'?: any; + 'pdf_options'?: ExportLiveboardReportRequestPdfOptions; + 'png_options'?: ExportLiveboardReportRequestPngOptions; /** - * Display name of the user who initiated the task. + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). */ - 'author_display_name'?: string | null; + 'runtime_param_override'?: any; + 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6504,8 +6418,7 @@ declare class ImportEPackAsyncTaskStatus { }[]; constructor(); } -type ImportEPackAsyncTaskStatusTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; -type ImportEPackAsyncTaskStatusImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; +type ExportLiveboardReportRequestFileFormatEnum = "PDF" | "PNG"; /** * ThoughtSpot Public REST API @@ -6518,16 +6431,31 @@ type ImportEPackAsyncTaskStatusImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "V * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class GetAsyncImportStatusResponse { +declare class ExportMetadataTMLBatchedRequest { /** - * List of task statuses. + * Type of metadata object to export, can be one of USER | ROLE | USER_GROUP */ - 'status_list'?: Array | null; + 'metadata_type': ExportMetadataTMLBatchedRequestMetadataTypeEnum; /** - * Indicates whether there are more task statuses to fetch. + * Indicates the position within the complete set from where the API should begin returning objects. */ - 'last_batch'?: boolean | null; + 'batch_offset'?: number; + /** + * Determines the number of objects or items to be retrieved in a single request. + */ + 'batch_size'?: number; + /** + * TML EDOC content format. + */ + 'edoc_format'?: ExportMetadataTMLBatchedRequestEdocFormatEnum; + /** + * Indicates whether to export dependent metadata objects of specified metadata objects. + */ + 'export_dependent'?: boolean | null; + /** + * Indicates whether to export is happening from all orgs context. + */ + 'all_orgs_override'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6543,6 +6471,8 @@ declare class GetAsyncImportStatusResponse { }[]; constructor(); } +type ExportMetadataTMLBatchedRequestMetadataTypeEnum = "USER" | "USER_GROUP" | "ROLE"; +type ExportMetadataTMLBatchedRequestEdocFormatEnum = "JSON" | "YAML"; /** * ThoughtSpot Public REST API @@ -6556,10 +6486,33 @@ declare class GetAsyncImportStatusResponse { * Do not edit the class manually. */ /** -* Groups objects. +* Flags to specify additional options for export. Version: 10.6.0.cl or later */ -declare class GroupObject { - 'identifier'?: string | null; +declare class ExportMetadataTMLRequestExportOptions { + /** + * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. + */ + 'include_obj_id_ref'?: boolean | null; + /** + * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. + */ + 'include_guid'?: boolean | null; + /** + * 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. + */ + 'include_obj_id'?: boolean | null; + /** + * 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 + */ + 'export_with_associated_feedbacks'?: boolean | null; + /** + * 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 + */ + 'export_column_security_rules'?: boolean | null; + /** + * 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 + */ + 'export_with_column_aliases'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6588,17 +6541,25 @@ declare class GroupObject { * Do not edit the class manually. */ /** -* Filter Rules to be applied on Objects. +* MetadataType InputType used in Export MetadataType API */ -declare class ParameterValues { +declare class ExportMetadataTypeInput { /** - * The name of the column to apply the filter on. + * Type of metadata. 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. */ - 'name': string; + 'type'?: ExportMetadataTypeInputTypeEnum | null; /** - * The values to filter on. Only single value is supported currently. + * Unique ID or name of the metadata object. Not required if the metadata type is ANSWER when session_id and generation_number is set. */ - 'values': Array; + 'identifier'?: string | null; + /** + * Unique ID of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + */ + 'session_identifier'?: string | null; + /** + * Generation Number of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + */ + 'generation_number'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6614,6 +6575,7 @@ declare class ParameterValues { }[]; constructor(); } +type ExportMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CONNECTION" | "CUSTOM_ACTION" | "USER" | "USER_GROUP" | "ROLE" | "FEEDBACK"; /** * ThoughtSpot Public REST API @@ -6626,18 +6588,41 @@ declare class ParameterValues { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Objects on which the filter rules and parameters values should be applied to -*/ -declare class TokenAccessScopeObject { + +declare class ExportMetadataTMLRequest { /** - * 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. + * Metadata objects. */ - 'type'?: TokenAccessScopeObjectTypeEnum | null; + 'metadata': Array; /** - * Unique name/id of the object. + * Indicates whether to export associated metadata objects of specified metadata objects. */ - 'identifier': string; + 'export_associated'?: boolean | null; + /** + * Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects, the API returns the Liveboard TML data with the FQNs of the referenced worksheet. If the exported TML data includes FQNs, you don\'t need to manually add FQNs of the referenced objects during TML import. + */ + 'export_fqn'?: boolean | null; + /** + * TML EDOC content format. **Note: exporting in YAML format currently requires manual formatting of the output. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** + */ + 'edoc_format'?: ExportMetadataTMLRequestEdocFormatEnum; + /** + * Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version. + */ + 'export_schema_version'?: ExportMetadataTMLRequestExportSchemaVersionEnum; + /** + * Indicates whether to export table while exporting connection. + */ + 'export_dependent'?: boolean | null; + /** + * Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard. This will only be active when export_associated is true. + */ + 'export_connection_as_dependent'?: boolean | null; + /** + * Indicates whether to export is happening from all orgs context. + */ + 'all_orgs_override'?: boolean | null; + 'export_options'?: ExportMetadataTMLRequestExportOptions; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6653,7 +6638,8 @@ declare class TokenAccessScopeObject { }[]; constructor(); } -type TokenAccessScopeObjectTypeEnum = "LOGICAL_TABLE"; +type ExportMetadataTMLRequestEdocFormatEnum = "JSON" | "YAML"; +type ExportMetadataTMLRequestExportSchemaVersionEnum = "DEFAULT" | "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -6666,60 +6652,34 @@ type TokenAccessScopeObjectTypeEnum = "LOGICAL_TABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class GetCustomAccessTokenRequest { - /** - * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. - */ - 'username': string; - /** - * Password of the user account - */ - 'password'?: string; - /** - * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. - */ - 'secret_key'?: string; - /** - * Token validity duration in seconds - */ - 'validity_time_in_sec'?: number; - /** - * ID or name of the Org context to log in to. If the Org ID or name is not specified but a secret key is provided, the user will be logged into the Org associated with the secret key. If neither the Org ID/name nor the secret key is provided, the user will be logged into the Org context from their previous login session. - */ - 'org_identifier'?: string; - /** - * Indicates whether the specified attributes should be persisted or not. - */ - 'persist_option': GetCustomAccessTokenRequestPersistOptionEnum; - /** - * Filter rules. - */ - 'filter_rules'?: Array; +/** +* Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled. +*/ +declare class ExportOptions { /** - * Parameter values. + * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. */ - 'parameter_values'?: Array; + 'include_obj_id_ref'?: boolean | null; /** - * Objects on which the filter rules and parameters values should be applied to + * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. */ - 'objects'?: Array; + 'include_guid'?: boolean | null; /** - * (just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user. + * 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. */ - 'email'?: string; + 'include_obj_id'?: boolean | null; /** - * (just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user. + * 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 */ - 'display_name'?: string; + 'export_with_associated_feedbacks'?: boolean | null; /** - * (just-in-time (JIT) provisioning) ID or name of the groups to which the newly created user belongs. Specify this attribute when creating a new user. + * 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 */ - 'groups'?: Array; + 'export_column_security_rules'?: boolean | null; /** - * 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. Version: 10.5.0.cl or later + * 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 */ - 'auto_create'?: boolean | null; + 'export_with_column_aliases'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6735,7 +6695,6 @@ declare class GetCustomAccessTokenRequest { }[]; constructor(); } -type GetCustomAccessTokenRequestPersistOptionEnum = "REPLACE" | "APPEND" | "NONE" | "RESET"; /** * ThoughtSpot Public REST API @@ -6748,18 +6707,23 @@ type GetCustomAccessTokenRequestPersistOptionEnum = "REPLACE" | "APPEND" | "NONE * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Objects to apply the User_Object. -*/ -declare class UserObject { +declare class ExternalTableInput { /** - * 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. + * Unique ID or name of the connection. */ - 'type'?: UserObjectTypeEnum | null; + 'connection_identifier': string; /** - * Unique name/id of the object. + * Name of the database. */ - 'identifier': string; + 'database_name'?: string | null; + /** + * Name of the schema. + */ + 'schema_name'?: string | null; + /** + * Name of the table. Table names may be case-sensitive depending on the database system. + */ + 'table_name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6775,7 +6739,6 @@ declare class UserObject { }[]; constructor(); } -type UserObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -6788,31 +6751,19 @@ type UserObjectTypeEnum = "LOGICAL_TABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Objects to apply the Runtime_Filters. -*/ -declare class RuntimeFilters { - /** - * The column name to apply filter. - */ - 'column_name': string; - /** - * Value of the filters. - */ - 'values': Array; +declare class FavoriteMetadataItem { /** - * Operator value. Example: EQ + * Unique ID of the metadata object. */ - 'operator': RuntimeFiltersOperatorEnum; + 'id': string; /** - * Flag to persist the runtime filters. Version: 9.12.0.cl or later + * name of the metadata object. */ - 'persist'?: boolean | null; + 'name': string; /** - * Object to apply the runtime filter. + * Type of metadata 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. */ - 'objects'?: Array | null; + 'type': FavoriteMetadataItemTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6828,7 +6779,7 @@ declare class RuntimeFilters { }[]; constructor(); } -type RuntimeFiltersOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; +type FavoriteMetadataItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; /** * ThoughtSpot Public REST API @@ -6841,27 +6792,18 @@ type RuntimeFiltersOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Objects to apply the Runtime_Parameters. +* Favorite object options. */ -declare class RuntimeParameters { - /** - * The name of the parameter. - */ - 'name': string; - /** - * The array of values. - */ - 'values': Array; +declare class FavoriteObjectOptionsInput { /** - * Flag to persist the parameters. Version: 9.12.0.cl or later + * Includes objects marked as favorite for the specified users. */ - 'persist'?: boolean | null; + 'include'?: boolean | null; /** - * Object to apply the runtime parameter. + * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. */ - 'objects'?: Array | null; + 'user_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6889,27 +6831,35 @@ declare class RuntimeParameters { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Objects to apply the Runtime_Sorts. -*/ -declare class RuntimeSorts { +declare class FetchAnswerDataRequest { /** - * The column name to apply filter. + * GUID or name of the Answer. */ - 'column_name'?: string | null; + 'metadata_identifier': string; /** - * Order for the sort. + * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. */ - 'order'?: RuntimeSortsOrderEnum | null; + 'data_format'?: FetchAnswerDataRequestDataFormatEnum; /** - * Flag to persist the runtime sorts. Version: 9.12.0.cl or later + * The starting record number from where the records should be included. */ - 'persist'?: boolean | null; + 'record_offset'?: number; /** - * Object to apply the runtime sort. + * The number of records to include in a batch. */ - 'objects'?: Array | null; + 'record_size'?: number; + /** + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). + */ + 'runtime_filter'?: any; + /** + * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). + */ + 'runtime_sort'?: any; + /** + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + */ + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6925,7 +6875,7 @@ declare class RuntimeSorts { }[]; constructor(); } -type RuntimeSortsOrderEnum = "ASC" | "DESC"; +type FetchAnswerDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -6938,24 +6888,11 @@ type RuntimeSortsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -*
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). -*/ -declare class GetFullAccessTokenRequestUserParameters { - 'objects'?: Array | null; - /** - * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` - */ - 'runtime_filters'?: Array | null; - /** - * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` - */ - 'runtime_sorts'?: Array | null; +declare class FetchAnswerSqlQueryRequest { /** - * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + * ID or name of an Answer. */ - 'parameters'?: Array | null; + 'metadata_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6983,45 +6920,31 @@ declare class GetFullAccessTokenRequestUserParameters { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class GetFullAccessTokenRequest { - /** - * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. - */ - 'username': string; - /** - * Password of the user account - */ - 'password'?: string; - /** - * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. - */ - 'secret_key'?: string; +declare class FetchAsyncImportTaskStatusRequest { /** - * Token validity duration in seconds + * List of task IDs to fetch status for. */ - 'validity_time_in_sec'?: number; + 'task_ids'?: Array; /** - * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. + * List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED] */ - 'org_id'?: number; + 'task_status'?: Array; /** - * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). + * Author GUID or name of async import tasks to filter on. */ - 'email'?: string; + 'author_identifier'?: string; /** - * Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT). + * The offset point, starting from where the task status should be included in the response. */ - 'display_name'?: string; + 'record_offset'?: number; /** - * 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. + * The number of task statuses that should be included in the response starting from offset position. */ - 'auto_create'?: boolean | null; + 'record_size'?: number; /** - * ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT). + * Boolean flag to specify whether to include import response in the task status objects. */ - 'group_identifiers'?: Array; - 'user_parameters'?: GetFullAccessTokenRequestUserParameters; + 'include_import_response'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7037,6 +6960,7 @@ declare class GetFullAccessTokenRequest { }[]; constructor(); } +type FetchAsyncImportTaskStatusRequestTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; /** * ThoughtSpot Public REST API @@ -7050,48 +6974,11 @@ declare class GetFullAccessTokenRequest { * Do not edit the class manually. */ -declare class GetObjectAccessTokenRequest { - /** - * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. - */ - 'username': string; - /** - * GUID of the ThoughtSpot metadata object that the user can access. The bearer will only have access to the object specified in the API request. - */ - 'object_id'?: string; - /** - * Password of the user account - */ - 'password'?: string; - /** - * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. - */ - 'secret_key'?: string; - /** - * Token validity duration in seconds - */ - 'validity_time_in_sec'?: number; - /** - * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. - */ - 'org_id'?: number; - /** - * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). - */ - 'email'?: string; - /** - * Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). - */ - 'display_name'?: string; - /** - * 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. - */ - 'auto_create'?: boolean | null; +declare class FetchColumnSecurityRulesRequest { /** - * 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. + * Array of table identifier objects for which to fetch column security rules */ - 'group_identifiers'?: Array; - 'user_parameters'?: GetFullAccessTokenRequestUserParameters; + 'tables': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7119,27 +7006,11 @@ declare class GetObjectAccessTokenRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class GetTokenResponse { - /** - * Bearer auth token. - */ - 'token': string; - /** - * Token creation time in milliseconds. - */ - 'creation_time_in_millis': number; - /** - * Token expiration time in milliseconds. - */ - 'expiration_time_in_millis': number; - /** - * Username to whom the token is issued. - */ - 'valid_for_user_id': string; +declare class FetchConnectionDiffStatusResponse { /** - * Unique identifier of the user to whom the token is issued. + * Status of the connection diff. */ - 'valid_for_username': string; + 'status'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7167,43 +7038,43 @@ declare class GetTokenResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class GroupsImportListInput { +declare class FetchLiveboardDataRequest { /** - * Unique display name of the group. + * GUID or name of the Liveboard. */ - 'display_name': string; + 'metadata_identifier': string; /** - * Unique ID or name of the group. + * GUIDs or names of the visualizations on the Liveboard. */ - 'group_identifier': string; + 'visualization_identifiers'?: Array; /** - * Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group. + * Transient content of the Liveboard. */ - 'default_liveboard_identifiers'?: Array | null; + 'transient_content'?: string; /** - * Description of the group. + * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. */ - 'description'?: string | null; + 'data_format'?: FetchLiveboardDataRequestDataFormatEnum; /** - * Privileges that will be assigned to the group. + * The starting record number from where the records should be included. */ - 'privileges'?: Array | null; + 'record_offset'?: number; /** - * Unique ID or name of the sub-groups to add to the group. + * The number of records to include in a batch. */ - 'sub_group_identifiers'?: Array | null; + 'record_size'?: number; /** - * Type of the group. + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). */ - 'type'?: GroupsImportListInputTypeEnum | null; + 'runtime_filter'?: any; /** - * Unique ID or name of the users to assign to the group. + * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). */ - 'user_identifiers'?: Array | null; + 'runtime_sort'?: any; /** - * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). */ - 'visibility'?: GroupsImportListInputVisibilityEnum | null; + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7219,9 +7090,7 @@ declare class GroupsImportListInput { }[]; constructor(); } -type GroupsImportListInputPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type GroupsImportListInputTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type FetchLiveboardDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -7234,18 +7103,15 @@ type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Attribute to update in a header. -*/ -declare class HeaderAttributeInput { +declare class FetchLiveboardSqlQueryRequest { /** - * Attribute name to be updated. + * ID or name of the Liveboard. */ - 'name': string; + 'metadata_identifier': string; /** - * Attribute\'s new value. + * Unique ID or name of visualizations. */ - 'value': string; + 'visualization_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7273,27 +7139,23 @@ declare class HeaderAttributeInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Favorite object options. -*/ -declare class HeaderUpdateInput { +declare class FetchLogsRequest { /** - * Unique ID of a specified type to identify the header. + * Name of the log type */ - 'identifier'?: string | null; + 'log_type': FetchLogsRequestLogTypeEnum; /** - * Custom object identifier to uniquely identify header. + * Start time in EPOCH format */ - 'obj_identifier'?: string | null; + 'start_epoch_time_in_millis'?: number; /** - * Optional type of the header object. + * End time in EPOCH format */ - 'type'?: HeaderUpdateInputTypeEnum | null; + 'end_epoch_time_in_millis'?: number; /** - * List of attributes to update + * Fetch all the logs. This is available from 9.10.5.cl */ - 'attributes': Array; + 'get_all_logs'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7309,7 +7171,7 @@ declare class HeaderUpdateInput { }[]; constructor(); } -type HeaderUpdateInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; +type FetchLogsRequestLogTypeEnum = "SECURITY_AUDIT"; /** * ThoughtSpot Public REST API @@ -7322,31 +7184,18 @@ type HeaderUpdateInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportMetadataTMLAsyncRequest { - /** - * Details of TML objects. - */ - 'metadata_tmls': Array; - /** - * If selected, creates TML objects with new GUIDs. - */ - 'create_new'?: boolean | null; - /** - * If import is happening from all orgs context. - */ - 'all_orgs_override'?: boolean | null; - /** - *
Version: 10.5.0.cl or later
Policy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE] - */ - 'import_policy'?: ImportMetadataTMLAsyncRequestImportPolicyEnum; +/** +* MetadataType InputType used in Permission API\'s +*/ +declare class PermissionsMetadataTypeInput { /** - *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. + * Type of metadata 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. */ - 'skip_diff_check'?: boolean | null; + 'type'?: PermissionsMetadataTypeInputTypeEnum | null; /** - *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. + * Unique ID or name of the metadata object. */ - 'enable_large_metadata_validation'?: boolean | null; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7362,7 +7211,7 @@ declare class ImportMetadataTMLAsyncRequest { }[]; constructor(); } -type ImportMetadataTMLAsyncRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; +type PermissionsMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -7375,31 +7224,15 @@ type ImportMetadataTMLAsyncRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportMetadataTMLRequest { - /** - * Details of TML objects. **Note: importing TML in YAML format, when coming directly from our Playground, is currently requires manual formatting. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** - */ - 'metadata_tmls': Array; - /** - * Specifies the import policy for the TML import. - */ - 'import_policy'?: ImportMetadataTMLRequestImportPolicyEnum; - /** - * If selected, creates TML objects with new GUIDs. - */ - 'create_new'?: boolean | null; - /** - * If import is happening from all orgs context. - */ - 'all_orgs_override'?: boolean | null; +declare class PrincipalsInput { /** - *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. + * Unique ID or name of the principal object such as a user or group. */ - 'skip_diff_check'?: boolean | null; + 'identifier': string; /** - *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. + * Principal type. */ - 'enable_large_metadata_validation'?: boolean | null; + 'type'?: PrincipalsInputTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7415,7 +7248,7 @@ declare class ImportMetadataTMLRequest { }[]; constructor(); } -type ImportMetadataTMLRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; +type PrincipalsInputTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -7429,63 +7262,81 @@ type ImportMetadataTMLRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VAL * Do not edit the class manually. */ -declare class ImportUser { - /** - * Unique ID or name of the user. - */ - 'user_identifier': string; - /** - * Display name of the user. - */ - 'display_name': string; - /** - * Password of the user. - */ - 'password'?: string | null; +declare class FetchPermissionsOfPrincipalsRequest { /** - * Type of the user account. + * GUID or name of the user or group. */ - 'account_type'?: ImportUserAccountTypeEnum | null; + 'principals': Array; /** - * Status of the user account. + * Metadata objects for which you want to fetch permission details. If not specified, the API returns permission details for all metadata objects that the specified users and groups can access. */ - 'account_status'?: ImportUserAccountStatusEnum | null; + 'metadata'?: Array; /** - * Email address of the user. + * The starting record number from where the records should be included for each metadata type. */ - 'email'?: string | null; + 'record_offset'?: number; /** - * ID or name of the Orgs to which the user belongs. + * The number of records that should be included for each metadata type. */ - 'org_identifiers'?: Array | null; + 'record_size'?: number; /** - * ID or name of the groups to which the user belongs. + * When no metadata objects input is passed, metadata objects of this type are fetched. */ - 'group_identifiers'?: Array | null; + 'default_metadata_type'?: FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum = "ALL" | "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class FetchPermissionsOnMetadataRequest { /** - * Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user. + * GUID or name of the metadata object. */ - 'visibility'?: ImportUserVisibilityEnum | null; + 'metadata': Array; /** - * Notify user when other users or groups share metadata objects + * User or group objects for which you want to fetch permissions. If not specified, the API returns all users and groups that can access the specified metadata objects. */ - 'notify_on_share'?: boolean | null; + 'principals'?: Array; /** - * Show or hide the new user onboarding walkthroughs + * Indicates whether to fetch permissions of dependent metadata objects. */ - 'show_onboarding_experience'?: boolean | null; + 'include_dependent_objects'?: boolean | null; /** - * Revisit the new user onboarding walkthroughs + * The starting record number from where the records should be included for each metadata type. */ - 'onboarding_experience_completed'?: boolean | null; + 'record_offset'?: number; /** - * Unique ID or name of the default Liveboard assigned to the user. + * The number of records that should be included for each metadata type. */ - 'home_liveboard_identifier'?: string | null; + 'record_size'?: number; /** - * Metadata objects to add to the user\'s favorites list. + *
Version: 10.3.0.cl or later
Specifies the type of permission. Valid values are: EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong. DEFINED - If a user or user group received access to metadata objects via object sharing by another user. */ - 'favorite_metadata'?: Array | null; + 'permission_type'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7501,9 +7352,6 @@ declare class ImportUser { }[]; constructor(); } -type ImportUserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type ImportUserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type ImportUserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -7516,20 +7364,22 @@ type ImportUserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ImportUserGroupsRequest { +/** +* Filter Rules to be applied on Objects. +*/ +declare class FilterRules { /** - * Details of groups which are to be imported + * The name of the column to apply the filter on. */ - 'groups'?: Array; + 'column_name': string; /** - * If set to true, removes groups that are not specified in the API request. + * The operator to use for filtering. Example: EQ (equals), GT(greater than), etc. */ - 'delete_unspecified_groups'?: boolean | null; + 'operator': FilterRulesOperatorEnum; /** - * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. + * The values to filter on. To get all records, use TS_WILDCARD_ALL as values. */ - 'dry_run'?: boolean | null; + 'values': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7545,6 +7395,7 @@ declare class ImportUserGroupsRequest { }[]; constructor(); } +type FilterRulesOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; /** * ThoughtSpot Public REST API @@ -7557,9 +7408,11 @@ declare class ImportUserGroupsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UserGroup { - 'id'?: string | null; - 'name'?: string | null; +declare class ForceLogoutUsersRequest { + /** + * GUID or name of the users for force logging out their sessions. + */ + 'user_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7588,19 +7441,11 @@ declare class UserGroup { * Do not edit the class manually. */ -declare class ImportUserGroupsResponse { - /** - * The groups which are added into the system. - */ - 'groups_added': Array; - /** - * The groups which are deleted from the system. - */ - 'groups_deleted': Array; - /** - * The groups which are updated in the system. - */ - 'groups_updated': Array; +/** +* Configuration of schedule with cron expression +*/ +declare class Frequency { + 'cron_expression': CronExpression; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7628,15 +7473,12 @@ declare class ImportUserGroupsResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportUserType { - /** - * Unique identifier of the user. - */ - 'id'?: string | null; - /** - * Name of the user. - */ - 'name': string; + +/** +* Configuration of schedule with cron expression +*/ +declare class FrequencyInput { + 'cron_expression': CronExpressionInput; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7664,24 +7506,35 @@ declare class ImportUserType { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ImportUsersRequest { +declare class GenerateCSVRequest { /** - * List of users needs to be imported. + * Start date for the calendar in `MM/dd/yyyy` format. */ - 'users': Array; + 'start_date': string; /** - * The default password to assign to users if they do not have a password assigned in ThoughtSpot. + * End date for the calendar in `MM/dd/yyyy` format. */ - 'default_password'?: string; + 'end_date': string; /** - * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. + * Type of the calendar. */ - 'dry_run'?: boolean | null; + 'calendar_type'?: GenerateCSVRequestCalendarTypeEnum; /** - * If set to true, removes the users that are not specified in the API request. + * Month offset to start calendar from `January`. */ - 'delete_unspecified_users'?: boolean | null; + 'month_offset'?: GenerateCSVRequestMonthOffsetEnum; + /** + * Specify the starting day of the week. + */ + 'start_day_of_week'?: GenerateCSVRequestStartDayOfWeekEnum; + /** + * Prefix to add before the quarter. + */ + 'quarter_name_prefix'?: string; + /** + * Prefix to add before the year. + */ + 'year_name_prefix'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7697,6 +7550,9 @@ declare class ImportUsersRequest { }[]; constructor(); } +type GenerateCSVRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; +type GenerateCSVRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; +type GenerateCSVRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; /** * ThoughtSpot Public REST API @@ -7709,11 +7565,9 @@ declare class ImportUsersRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ImportUsersResponse { - 'users_added'?: Array | null; - 'users_updated'?: Array | null; - 'users_deleted'?: Array | null; +declare class GenericInfo { + 'id'?: string | null; + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7741,23 +7595,67 @@ declare class ImportUsersResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class InputEurekaNLSRequest { +declare class ImportEPackAsyncTaskStatus { /** - * Cluster version like 10.4.0.cl, 10.5.0.cl, so on. + * GUID of tenant from which the task is initiated. */ - 'agentVersion'?: number | null; + 'tenant_id'?: string | null; /** - * If true, results are not returned from cache & calculated every time. Can incur high costs & latency. + * Organisation ID of the user who initiated the task. */ - 'bypassCache'?: boolean | null; + 'org_id'?: number | null; /** - * User specific instructions for processing the @query. + * Unique identifier for the task. */ - 'instructions'?: Array | null; + 'task_id'?: string | null; /** - * User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions. + * Name of the task. */ - 'query'?: string | null; + 'task_name'?: string | null; + /** + * Response of imported objects so far. + */ + 'import_response'?: any | null; + /** + * Current status of the task. + */ + 'task_status'?: ImportEPackAsyncTaskStatusTaskStatusEnum | null; + /** + * ID of the user who initiated the task. + */ + 'author_id'?: string | null; + /** + * Policy used for the import task. + */ + 'import_policy'?: ImportEPackAsyncTaskStatusImportPolicyEnum | null; + /** + * Time when the task was created (in ms since epoch). + */ + 'created_at'?: number | null; + /** + * Time when the task started (in ms since epoch). + */ + 'in_progress_at'?: number | null; + /** + * Time when the task was completed (in ms since epoch). + */ + 'completed_at'?: number | null; + /** + * Total number of objects to process. + */ + 'total_object_count'?: number | null; + /** + * Number of objects processed so far. + */ + 'object_processed_count'?: number | null; + /** + * Last time the task status was updated (in ms since epoch). + */ + 'modified_at'?: number | null; + /** + * Display name of the user who initiated the task. + */ + 'author_display_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7773,6 +7671,8 @@ declare class InputEurekaNLSRequest { }[]; constructor(); } +type ImportEPackAsyncTaskStatusTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; +type ImportEPackAsyncTaskStatusImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; /** * ThoughtSpot Public REST API @@ -7785,12 +7685,48 @@ declare class InputEurekaNLSRequest { * https://openapi-generator.tech * Do not edit the class manually. */ + +declare class GetAsyncImportStatusResponse { + /** + * List of task statuses. + */ + 'status_list'?: Array | null; + /** + * Indicates whether there are more task statuses to fetch. + */ + 'last_batch'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** -* Metadata objects. + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Groups objects. */ -declare class JWTMetadataObject { +declare class GroupObject { 'identifier'?: string | null; - 'type'?: JWTMetadataObjectTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7806,7 +7742,6 @@ declare class JWTMetadataObject { }[]; constructor(); } -type JWTMetadataObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -7820,21 +7755,17 @@ type JWTMetadataObjectTypeEnum = "LOGICAL_TABLE"; * Do not edit the class manually. */ /** -* List of runtime parameters need to set during the session. +* Filter Rules to be applied on Objects. */ -declare class JWTParameter { - /** - * Runtime filter parameter type in JWT. - */ - 'runtime_filter'?: any | null; +declare class ParameterValues { /** - * Runtime sort parameter type in JWT. + * The name of the column to apply the filter on. */ - 'runtime_sort'?: any | null; + 'name': string; /** - * Runtime param override type in JWT. + * The values to filter on. Only single value is supported currently. */ - 'runtime_param_override'?: any | null; + 'values': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7862,13 +7793,18 @@ declare class JWTParameter { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* +* Objects on which the filter rules and parameters values should be applied to */ -declare class JWTUserOptions { - 'parameters'?: Array; - 'metadata'?: Array | null; +declare class TokenAccessScopeObject { + /** + * 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`. + */ + 'type'?: TokenAccessScopeObjectTypeEnum | null; + /** + * Unique name/id of the object. + */ + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7884,6 +7820,7 @@ declare class JWTUserOptions { }[]; constructor(); } +type TokenAccessScopeObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -7896,12 +7833,18 @@ declare class JWTUserOptions { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* +* Variable values. */ -declare class JWTUserOptionsFull { - 'parameters'?: Array | null; +declare class VariableValues { + /** + * The name of the existing formula variable. + */ + 'name': string; + /** + * The values to filter on. + */ + 'values': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7929,43 +7872,64 @@ declare class JWTUserOptionsFull { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class LiveboardContent { + +declare class GetCustomAccessTokenRequest { /** - * Total available data row count. + * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. */ - 'available_data_row_count': number; + 'username': string; /** - * Name of the columns. + * Password of the user account */ - 'column_names': Array; + 'password'?: string; /** - * Rows of data set. + * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. */ - 'data_rows': Array; + 'secret_key'?: string; /** - * The starting record number from where the records should be included. + * Token validity duration in seconds */ - 'record_offset': number; + 'validity_time_in_sec'?: number; /** - * The number of records that should be included. + * ID or name of the Org context to log in to. If the Org ID or name is not specified but a secret key is provided, the user will be logged into the Org associated with the secret key. If neither the Org ID/name nor the secret key is provided, the user will be logged into the Org context from their previous login session. */ - 'record_size': number; + 'org_identifier'?: string; /** - * Total returned data row count. + * Indicates whether the specified attributes should be persisted or not. RESET and NONE are not applicable if you are setting variable_values. */ - 'returned_data_row_count': number; + 'persist_option': GetCustomAccessTokenRequestPersistOptionEnum; /** - * Sampling ratio (0 to 1). If the query was sampled, it is the ratio of keys returned in the data set to the total number of keys expected in the query. If the value is 1.0, this means that the complete result is returned. + * Filter rules. */ - 'sampling_ratio': number; + 'filter_rules'?: Array; /** - * Unique ID of the visualization. + * Parameter values. */ - 'visualization_id'?: string | null; + 'parameter_values'?: Array; /** - * Name of the visualization. + * List of variable values where `name` references an existing formula variable and `values` is any value from the corresponding column. Version: 10.14.0.cl or later */ - 'visualization_name'?: string | null; + 'variable_values'?: Array; + /** + * Objects on which the filter rules and parameters values should be applied to + */ + 'objects'?: Array; + /** + * (just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user. + */ + 'email'?: string; + /** + * (just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user. + */ + 'display_name'?: string; + /** + * (just-in-time (JIT) provisioning) ID or name of the groups to which the newly created user belongs. Specify this attribute when creating a new user. + */ + 'groups'?: Array; + /** + * 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. New formula variables won\'t be created. Version: 10.5.0.cl or later + */ + 'auto_create'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7981,6 +7945,7 @@ declare class LiveboardContent { }[]; constructor(); } +type GetCustomAccessTokenRequestPersistOptionEnum = "REPLACE" | "APPEND" | "NONE" | "RESET"; /** * ThoughtSpot Public REST API @@ -7993,20 +7958,11 @@ declare class LiveboardContent { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class LiveboardDataResponse { - /** - * The unique identifier of the object - */ - 'metadata_id': string; - /** - * Name of the metadata object - */ - 'metadata_name': string; +declare class GetDataSourceSuggestionsRequest { /** - * Data content of metadata objects + * User query used to suggest data sources. */ - 'contents': Array; + 'query': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8035,13 +7991,17 @@ declare class LiveboardDataResponse { * Do not edit the class manually. */ /** -* Options to specify details of Liveboard. +* Objects to apply the User_Object. */ -declare class LiveboardOptions { +declare class UserObject { /** - * Unique ID or name of visualizations. + * 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`. */ - 'visualization_identifiers': Array; + 'type'?: UserObjectTypeEnum | null; + /** + * Unique name/id of the object. + */ + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8057,6 +8017,7 @@ declare class LiveboardOptions { }[]; constructor(); } +type UserObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -8069,14 +8030,31 @@ declare class LiveboardOptions { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Options to specify details of Liveboard. +* Objects to apply the Runtime_Filters. */ -declare class LiveboardOptionsInput { +declare class RuntimeFilters { /** - * Unique ID or name of visualizations. + * The column name to apply filter. */ - 'visualization_identifiers': Array; + 'column_name': string; + /** + * Value of the filters. + */ + 'values': Array; + /** + * Operator value. Example: EQ + */ + 'operator': RuntimeFiltersOperatorEnum; + /** + * Flag to persist the runtime filters. Version: 9.12.0.cl or later + */ + 'persist'?: boolean | null; + /** + * Object to apply the runtime filter. + */ + 'objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8092,6 +8070,7 @@ declare class LiveboardOptionsInput { }[]; constructor(); } +type RuntimeFiltersOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; /** * ThoughtSpot Public REST API @@ -8104,15 +8083,27 @@ declare class LiveboardOptionsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class LogResponse { + +/** +* Objects to apply the Runtime_Parameters. +*/ +declare class RuntimeParameters { /** - * Date timestamp of the log entry + * The name of the parameter. */ - 'date': string; + 'name': string; /** - * Log data + * The array of values. */ - 'log': string; + 'values': Array; + /** + * Flag to persist the parameters. Version: 9.12.0.cl or later + */ + 'persist'?: boolean | null; + /** + * Object to apply the runtime parameter. + */ + 'objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8140,23 +8131,27 @@ declare class LogResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class LoginRequest { + +/** +* Objects to apply the Runtime_Sorts. +*/ +declare class RuntimeSorts { /** - * Username of the ThoughtSpot user + * The column name to apply filter. */ - 'username'?: string; + 'column_name'?: string | null; /** - * Password of the user account + * Order for the sort. */ - 'password'?: string; + 'order'?: RuntimeSortsOrderEnum | null; /** - * ID of the Org context to log in to. If Org ID is not specified, the user will be logged in to the Org context of their previous login session. + * Flag to persist the runtime sorts. Version: 9.12.0.cl or later */ - 'org_identifier'?: string; + 'persist'?: boolean | null; /** - * A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests. + * Object to apply the runtime sort. */ - 'remember_me'?: boolean | null; + 'objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8172,6 +8167,7 @@ declare class LoginRequest { }[]; constructor(); } +type RuntimeSortsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -8185,16 +8181,23 @@ declare class LoginRequest { * Do not edit the class manually. */ -declare class MetadataAssociationItem { - 'action_config': ActionConfig; +/** +*
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). +*/ +declare class GetFullAccessTokenRequestUserParameters { + 'objects'?: Array | null; /** - * Unique ID or name of the metadata. + * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` */ - 'identifier': string; + 'runtime_filters'?: Array | null; /** - * Type of metadata. 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. + * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` */ - 'type': string; + 'runtime_sorts'?: Array | null; + /** + * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + */ + 'parameters'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8222,58 +8225,45 @@ declare class MetadataAssociationItem { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class MetadataInput { - 'identifier'?: string | null; - 'type'?: MetadataInputTypeEnum | null; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} -type MetadataInputTypeEnum = "LIVEBOARD"; -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class MetadataListItemInput { +declare class GetFullAccessTokenRequest { /** - * Unique ID or name of the metadata. + * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. */ - 'identifier'?: string | null; + 'username': string; /** - * CustomObjectId of the metadata. + * Password of the user account */ - 'obj_identifier'?: string | null; + 'password'?: string; /** - * A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match. + * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. */ - 'name_pattern'?: string | null; + 'secret_key'?: string; /** - * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view. 5. CONNECTION for creating or modify data connections. 6. TAG for tag objects. 7. USER for user objects. 8. USER_GROUP for group objects. 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values 10. INSIGHT_SPEC for SpotIQ objects + * Token validity duration in seconds */ - 'type'?: MetadataListItemInputTypeEnum | null; + 'validity_time_in_sec'?: number; /** - * List of subtype of metadata. Applies for LOGICAL_TABLE type with the following valid values. 1. ONE_TO_ONE_LOGICAL 2. WORKSHEET 3. PRIVATE_WORKSHEET. 4. USER_DEFINED. 5. AGGR_WORKSHEET. 6. SQL_VIEW Version: 10.11.0.cl or later + * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. */ - 'subtypes'?: Array | null; + 'org_id'?: number; + /** + * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). + */ + 'email'?: string; + /** + * Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT). + */ + 'display_name'?: string; + /** + * 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. + */ + 'auto_create'?: boolean | null; + /** + * ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT). + */ + 'group_identifiers'?: Array; + 'user_parameters'?: GetFullAccessTokenRequestUserParameters; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8289,8 +8279,6 @@ declare class MetadataListItemInput { }[]; constructor(); } -type MetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; -type MetadataListItemInputSubtypesEnum = "ONE_TO_ONE_LOGICAL" | "WORKSHEET" | "PRIVATE_WORKSHEET" | "USER_DEFINED" | "AGGR_WORKSHEET" | "SQL_VIEW"; /** * ThoughtSpot Public REST API @@ -8303,10 +8291,11 @@ type MetadataListItemInputSubtypesEnum = "ONE_TO_ONE_LOGICAL" | "WORKSHEET" | "P * https://openapi-generator.tech * Do not edit the class manually. */ -declare class MetadataResponse { - 'name'?: string | null; - 'id': string; - 'type': MetadataResponseTypeEnum; +declare class GetNLInstructionsRequest { + /** + * Unique ID or name of the data-model for which to retrieve NL instructions. + */ + 'data_source_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8322,7 +8311,6 @@ declare class MetadataResponse { }[]; constructor(); } -type MetadataResponseTypeEnum = "LIVEBOARD"; /** * ThoughtSpot Public REST API @@ -8335,50 +8323,49 @@ type MetadataResponseTypeEnum = "LIVEBOARD"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Metadata Search Response Object. -*/ -declare class MetadataSearchResponse { + +declare class GetObjectAccessTokenRequest { /** - * Unique identifier of the metadata. + * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. */ - 'metadata_id'?: string | null; + 'username': string; /** - * Name of the metadata. + * GUID of the ThoughtSpot metadata object that the user can access. The bearer will only have access to the object specified in the API request. */ - 'metadata_name'?: string | null; + 'object_id'?: string; /** - * Type of the metadata. + * Password of the user account */ - 'metadata_type': MetadataSearchResponseMetadataTypeEnum; + 'password'?: string; /** - * Custom identifier of the metadata. (Available from 10.8.0.cl onwards) + * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. */ - 'metadata_obj_id'?: string | null; + 'secret_key'?: string; /** - * Details of dependent objects of the metadata objects. + * Token validity duration in seconds */ - 'dependent_objects'?: any | null; + 'validity_time_in_sec'?: number; /** - * Details of incomplete information of the metadata objects if any. + * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. */ - 'incomplete_objects'?: Array | null; + 'org_id'?: number; /** - * Complete details of the metadata objects. + * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). */ - 'metadata_detail'?: any | null; + 'email'?: string; /** - * Header information of the metadata objects. + * Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). */ - 'metadata_header'?: any | null; + 'display_name'?: string; /** - * Visualization header information of the metadata objects. + * 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. */ - 'visualization_headers'?: Array | null; + 'auto_create'?: boolean | null; /** - * Stats of the metadata object. Includes views, favorites, last_accessed. + * 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. */ - 'stats'?: any | null; + 'group_identifiers'?: Array; + 'user_parameters'?: GetFullAccessTokenRequestUserParameters; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8394,7 +8381,6 @@ declare class MetadataSearchResponse { }[]; constructor(); } -type MetadataSearchResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -8408,17 +8394,17 @@ type MetadataSearchResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_ * Do not edit the class manually. */ /** -* Sort options. +* Additional context to guide the response. */ -declare class MetadataSearchSortOptions { +declare class GetRelevantQuestionsRequestAiContext { /** - * Name of the field to apply the sort on. + * User specific text instructions sent to AI system for processing the query. */ - 'field_name'?: MetadataSearchSortOptionsFieldNameEnum | null; + 'instructions'?: Array | null; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. */ - 'order'?: MetadataSearchSortOptionsOrderEnum | null; + 'content'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8434,8 +8420,6 @@ declare class MetadataSearchSortOptions { }[]; constructor(); } -type MetadataSearchSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; -type MetadataSearchSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -8448,19 +8432,26 @@ type MetadataSearchSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ModelTableList { +/** +* metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required. +*/ +declare class GetRelevantQuestionsRequestMetadataContext { /** - * Name of the Model. + * List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them. */ - 'model_name': string; + 'data_source_identifiers'?: Array | null; /** - * Model directory path, this is optional param and required if there are duplicate models with the same name. + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'model_path'?: string | null; + 'answer_identifiers'?: Array | null; /** - * List of Tables. + * Unique identifier to denote current conversation. */ - 'tables': Array; + 'conversation_identifier'?: string | null; + /** + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'liveboard_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8488,18 +8479,22 @@ declare class ModelTableList { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* The object representation with ID and Name. -*/ -declare class ObjectIDAndName { + +declare class GetRelevantQuestionsRequest { + 'metadata_context': GetRelevantQuestionsRequestMetadataContext; /** - * The unique identifier of the object. + * Maximum number of relevant questions that is allowed in the response, default = 5. */ - 'id'?: string | null; + 'limit_relevant_questions'?: number; /** - * Name of the object. + * If true, results are not returned from cache & calculated every time. */ - 'name'?: string | null; + 'bypass_cache'?: boolean | null; + /** + * A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis. + */ + 'query': string; + 'ai_context'?: GetRelevantQuestionsRequestAiContext; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8527,18 +8522,27 @@ declare class ObjectIDAndName { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* The current Org context of the user. -*/ -declare class Org { +declare class GetTokenResponse { /** - * The ID of the object. + * Bearer auth token. */ - 'id': number; + 'token': string; /** - * Name of the object. + * Token creation time in milliseconds. */ - 'name': string; + 'creation_time_in_millis': number; + /** + * Token expiration time in milliseconds. + */ + 'expiration_time_in_millis': number; + /** + * Username to whom the token is issued. + */ + 'valid_for_user_id': string; + /** + * Unique identifier of the user to whom the token is issued. + */ + 'valid_for_username': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8566,27 +8570,43 @@ declare class Org { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class OrgResponse { +declare class GroupsImportListInput { /** - * Unique identifier of the Org. + * Unique display name of the group. */ - 'id'?: number | null; + 'display_name': string; /** - * Name of the Org. + * Unique ID or name of the group. */ - 'name'?: string | null; + 'group_identifier': string; /** - * Status of the Org. + * Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group. */ - 'status'?: OrgResponseStatusEnum | null; + 'default_liveboard_identifiers'?: Array | null; /** - * Description of the Org. + * Description of the group. */ 'description'?: string | null; /** - * Visibility of the Org. + * Privileges that will be assigned to the group. */ - 'visibility'?: OrgResponseVisibilityEnum | null; + 'privileges'?: Array | null; + /** + * Unique ID or name of the sub-groups to add to the group. + */ + 'sub_group_identifiers'?: Array | null; + /** + * Type of the group. + */ + 'type'?: GroupsImportListInputTypeEnum | null; + /** + * Unique ID or name of the users to assign to the group. + */ + 'user_identifiers'?: Array | null; + /** + * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + */ + 'visibility'?: GroupsImportListInputVisibilityEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8602,8 +8622,9 @@ declare class OrgResponse { }[]; constructor(); } -type OrgResponseStatusEnum = "ACTIVE" | "IN_ACTIVE"; -type OrgResponseVisibilityEnum = "SHOW" | "HIDDEN"; +type GroupsImportListInputPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type GroupsImportListInputTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -8616,27 +8637,18 @@ type OrgResponseVisibilityEnum = "SHOW" | "HIDDEN"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ParameterizeMetadataRequest { - /** - * Type of metadata object to parameterize. - */ - 'metadata_type'?: ParameterizeMetadataRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object to parameterize. - */ - 'metadata_identifier': string; - /** - * Type of field in the metadata to parameterize. - */ - 'field_type': ParameterizeMetadataRequestFieldTypeEnum; +/** +* Attribute to update in a header. +*/ +declare class HeaderAttributeInput { /** - * Name of the field which needs to be parameterized. + * Attribute name to be updated. */ - 'field_name': string; + 'name': string; /** - * Unique ID or name of the variable to use for parameterization + * Attribute\'s new value. */ - 'variable_identifier': string; + 'value': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8652,8 +8664,6 @@ declare class ParameterizeMetadataRequest { }[]; constructor(); } -type ParameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; -type ParameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; /** * ThoughtSpot Public REST API @@ -8666,46 +8676,27 @@ type ParameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPER * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Options for PDF export. +* Favorite object options. */ -declare class PdfOptions { - /** - * Indicates whether to include complete Liveboard. - */ - 'complete_liveboard'?: boolean | null; - /** - * Indicates whether to include cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page - */ - 'include_page_number'?: boolean | null; +declare class HeaderUpdateInput { /** - * Text to include in the footer of each page. + * Unique ID of a specified type to identify the header. */ - 'page_footer_text'?: string | null; + 'identifier'?: string | null; /** - * Page orientation of the PDF. + * Custom object identifier to uniquely identify header. */ - 'page_orientation'?: string | null; + 'obj_identifier'?: string | null; /** - * Page size. + * Optional type of the header object. */ - 'page_size'?: PdfOptionsPageSizeEnum | null; + 'type'?: HeaderUpdateInputTypeEnum | null; /** - * Indicates whether to include only first page of the tables. + * List of attributes to update */ - 'truncate_table'?: boolean | null; + 'attributes': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8721,7 +8712,7 @@ declare class PdfOptions { }[]; constructor(); } -type PdfOptionsPageSizeEnum = "A4"; +type HeaderUpdateInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -8734,35 +8725,31 @@ type PdfOptionsPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PdfOptionsInput { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; +declare class ImportMetadataTMLAsyncRequest { /** - * Indicates whether to include customized wide logo in the footer if available. + * Details of TML objects. */ - 'include_custom_logo'?: boolean | null; + 'metadata_tmls': Array; /** - * Indicates whether to include a page with all applied filters. + * If selected, creates TML objects with new GUIDs. */ - 'include_filter_page'?: boolean | null; + 'create_new'?: boolean | null; /** - * Indicates whether to include page number in the footer of each page. + * If import is happening from all orgs context. */ - 'include_page_number'?: boolean | null; + 'all_orgs_override'?: boolean | null; /** - * Page orientation of the PDF. + *
Version: 10.5.0.cl or later
Policy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE] */ - 'page_orientation'?: PdfOptionsInputPageOrientationEnum | null; + 'import_policy'?: ImportMetadataTMLAsyncRequestImportPolicyEnum; /** - * Indicates whether to include only the first page of the tables. + *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. */ - 'truncate_table'?: boolean | null; + 'skip_diff_check'?: boolean | null; /** - * Text to include in the footer of each page. + *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. */ - 'page_footer_text'?: string | null; + 'enable_large_metadata_validation'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8778,7 +8765,7 @@ declare class PdfOptionsInput { }[]; constructor(); } -type PdfOptionsInputPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; +type ImportMetadataTMLAsyncRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; /** * ThoughtSpot Public REST API @@ -8791,16 +8778,31 @@ type PdfOptionsInputPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Details of users or groups. -*/ -declare class PermissionInput { - 'principal': PrincipalsInput; +declare class ImportMetadataTMLRequest { /** - * Object share mode. + * Details of TML objects. **Note: importing TML in YAML format, when coming directly from our Playground, is currently requires manual formatting. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** */ - 'share_mode': PermissionInputShareModeEnum; + 'metadata_tmls': Array; + /** + * Specifies the import policy for the TML import. + */ + 'import_policy'?: ImportMetadataTMLRequestImportPolicyEnum; + /** + * If selected, creates TML objects with new GUIDs. + */ + 'create_new'?: boolean | null; + /** + * If import is happening from all orgs context. + */ + 'all_orgs_override'?: boolean | null; + /** + *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. + */ + 'skip_diff_check'?: boolean | null; + /** + *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. + */ + 'enable_large_metadata_validation'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8816,7 +8818,7 @@ declare class PermissionInput { }[]; constructor(); } -type PermissionInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; +type ImportMetadataTMLRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; /** * ThoughtSpot Public REST API @@ -8829,8 +8831,64 @@ type PermissionInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PermissionOfMetadataResponse { - 'metadata_permission_details'?: any | null; + +declare class ImportUser { + /** + * Unique ID or name of the user. + */ + 'user_identifier': string; + /** + * Display name of the user. + */ + 'display_name': string; + /** + * Password of the user. + */ + 'password'?: string | null; + /** + * Type of the user account. + */ + 'account_type'?: ImportUserAccountTypeEnum | null; + /** + * Status of the user account. + */ + 'account_status'?: ImportUserAccountStatusEnum | null; + /** + * Email address of the user. + */ + 'email'?: string | null; + /** + * ID or name of the Orgs to which the user belongs. + */ + 'org_identifiers'?: Array | null; + /** + * ID or name of the groups to which the user belongs. + */ + 'group_identifiers'?: Array | null; + /** + * Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user. + */ + 'visibility'?: ImportUserVisibilityEnum | null; + /** + * Notify user when other users or groups share metadata objects + */ + 'notify_on_share'?: boolean | null; + /** + * Show or hide the new user onboarding walkthroughs + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Revisit the new user onboarding walkthroughs + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * Unique ID or name of the default Liveboard assigned to the user. + */ + 'home_liveboard_identifier'?: string | null; + /** + * Metadata objects to add to the user\'s favorites list. + */ + 'favorite_metadata'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8846,6 +8904,9 @@ declare class PermissionOfMetadataResponse { }[]; constructor(); } +type ImportUserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type ImportUserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type ImportUserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -8858,8 +8919,20 @@ declare class PermissionOfMetadataResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PermissionOfPrincipalsResponse { - 'principal_permission_details'?: any | null; + +declare class ImportUserGroupsRequest { + /** + * Details of groups which are to be imported + */ + 'groups'?: Array; + /** + * If set to true, removes groups that are not specified in the API request. + */ + 'delete_unspecified_groups'?: boolean | null; + /** + * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. + */ + 'dry_run'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8887,31 +8960,9 @@ declare class PermissionOfPrincipalsResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PngOptionsInput { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates personalised view of the Liveboard in case of png - */ - 'personalised_view_id'?: string | null; - /** - * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later - */ - 'image_resolution'?: number | null; - /** - * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later - */ - 'image_scale'?: number | null; - /** - * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later - */ - 'include_header'?: boolean | null; +declare class UserGroup { + 'id'?: string | null; + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8939,15 +8990,20 @@ declare class PngOptionsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PrincipalsListItem { + +declare class ImportUserGroupsResponse { /** - * Unique ID or name of the user or group. + * The groups which are added into the system. */ - 'identifier': string; + 'groups_added': Array; /** - * Principal type. Valid values are + * The groups which are deleted from the system. */ - 'type': string; + 'groups_deleted': Array; + /** + * The groups which are updated in the system. + */ + 'groups_updated': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8975,15 +9031,15 @@ declare class PrincipalsListItem { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PublishMetadataListItem { +declare class ImportUserType { /** - * Unique ID or name of the metadata. + * Unique identifier of the user. */ - 'identifier': string; + 'id'?: string | null; /** - * Type of metadata. Required if identifier is name. + * Name of the user. */ - 'type'?: PublishMetadataListItemTypeEnum | null; + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8999,7 +9055,6 @@ declare class PublishMetadataListItem { }[]; constructor(); } -type PublishMetadataListItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -9013,19 +9068,23 @@ type PublishMetadataListItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE"; * Do not edit the class manually. */ -declare class PublishMetadataRequest { +declare class ImportUsersRequest { /** - * Metadata objects to be published. + * List of users needs to be imported. */ - 'metadata': Array; + 'users': Array; /** - * Unique ID or name of orgs to which metadata objects should be published. + * The default password to assign to users if they do not have a password assigned in ThoughtSpot. */ - 'org_identifiers': Array; + 'default_password'?: string; /** - * Skip validations of objects to be published. + * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. */ - 'skip_validation'?: boolean | null; + 'dry_run'?: boolean | null; + /** + * If set to true, removes the users that are not specified in the API request. + */ + 'delete_unspecified_users'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9053,10 +9112,39 @@ declare class PublishMetadataRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* NLSRequest object containing user query & instructions. -*/ -declare class QueryGetDecomposedQueryRequestNlsRequest { + +declare class ImportUsersResponse { + 'users_added'?: Array | null; + 'users_updated'?: Array | null; + 'users_deleted'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class InputEurekaNLSRequest { /** * Cluster version like 10.4.0.cl, 10.5.0.cl, so on. */ @@ -9100,33 +9188,12 @@ declare class QueryGetDecomposedQueryRequestNlsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class QueryGetDecomposedQueryRequest { - /** - * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. - */ - 'answerIds'?: Array; - /** - * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - */ - 'content'?: Array; - /** - * Unique identifier to denote current conversation. - */ - 'conversationId'?: string; - /** - * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. - */ - 'liveboardIds'?: Array; - /** - * Maximum number of decomposed queries that is allowed in the response, default = 5. - */ - 'maxDecomposedQueries'?: number; - 'nlsRequest'?: QueryGetDecomposedQueryRequestNlsRequest; - /** - * List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them. - */ - 'worksheetIds'?: Array; +/** +* Metadata objects. +*/ +declare class JWTMetadataObject { + 'identifier'?: string | null; + 'type'?: JWTMetadataObjectTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9142,6 +9209,7 @@ declare class QueryGetDecomposedQueryRequest { }[]; constructor(); } +type JWTMetadataObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -9154,19 +9222,22 @@ declare class QueryGetDecomposedQueryRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Recipient configuration which includes email address, ID or name of the users and groups. +* List of runtime parameters need to set during the session. */ -declare class RecipientDetails { +declare class JWTParameter { /** - * Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user. + * Runtime filter parameter type in JWT. */ - 'emails'?: Array | null; + 'runtime_filter'?: any | null; /** - * List of user or groups to subscribe for the scheduled job notifications. + * Runtime sort parameter type in JWT. */ - 'principals'?: Array | null; + 'runtime_sort'?: any | null; + /** + * Runtime param override type in JWT. + */ + 'runtime_param_override'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9196,17 +9267,11 @@ declare class RecipientDetails { */ /** -* Recipients of the scheduled job notification. +* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* */ -declare class RecipientDetailsInput { - /** - * Emails of the recipients. - */ - 'emails'?: Array | null; - /** - * User or groups to be set as recipients of the schedule notifications. - */ - 'principals'?: Array | null; +declare class JWTUserOptions { + 'parameters'?: Array; + 'metadata'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9234,23 +9299,12 @@ declare class RecipientDetailsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RegionalSettingsInput { - /** - * ISO code to be appended with currency values. - */ - 'currency_format'?: RegionalSettingsInputCurrencyFormatEnum | null; - /** - * Indicates the locale to be used for all formattings. - */ - 'user_locale'?: RegionalSettingsInputUserLocaleEnum | null; - /** - * Indicates the locale to be used for number formatting. - */ - 'number_format_locale'?: RegionalSettingsInputNumberFormatLocaleEnum | null; - /** - * Indicates the locale to be used for date formatting. - */ - 'date_format_locale'?: RegionalSettingsInputDateFormatLocaleEnum | null; + +/** +* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* +*/ +declare class JWTUserOptionsFull { + 'parameters'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9266,10 +9320,6 @@ declare class RegionalSettingsInput { }[]; constructor(); } -type RegionalSettingsInputCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; -type RegionalSettingsInputUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type RegionalSettingsInputNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type RegionalSettingsInputDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -9282,33 +9332,43 @@ type RegionalSettingsInputDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | " * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RepoConfigObject { +declare class LiveboardContent { /** - * Remote repository URL configured + * Total available data row count. */ - 'repository_url'?: string | null; + 'available_data_row_count': number; /** - * Username to authenticate connection to the version control system + * Name of the columns. */ - 'username'?: string | null; + 'column_names': Array; /** - * Name of the remote branch where objects from this Thoughtspot instance will be versioned. + * Rows of data set. */ - 'commit_branch_name'?: string | null; + 'data_rows': Array; /** - * Branches that have been pulled in local repository + * The starting record number from where the records should be included. */ - 'branches'?: Array | null; + 'record_offset': number; /** - * Maintain mapping of guid for the deployment to an instance + * The number of records that should be included. */ - 'enable_guid_mapping'?: boolean | null; + 'record_size': number; /** - * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. + * Total returned data row count. */ - 'configuration_branch_name'?: string | null; - 'org'?: Org; + 'returned_data_row_count': number; + /** + * Sampling ratio (0 to 1). If the query was sampled, it is the ratio of keys returned in the data set to the total number of keys expected in the query. If the value is 1.0, this means that the complete result is returned. + */ + 'sampling_ratio': number; + /** + * Unique ID of the visualization. + */ + 'visualization_id'?: string | null; + /** + * Name of the visualization. + */ + 'visualization_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9336,15 +9396,20 @@ declare class RepoConfigObject { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ResetUserPasswordRequest { + +declare class LiveboardDataResponse { /** - * New password for the user. + * The unique identifier of the object */ - 'new_password': string; + 'metadata_id': string; /** - * GUID or name of the user. + * Name of the metadata object */ - 'user_identifier': string; + 'metadata_name': string; + /** + * Data content of metadata objects + */ + 'contents': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9373,13 +9438,13 @@ declare class ResetUserPasswordRequest { * Do not edit the class manually. */ /** -* The object representation with activation link. +* Options to specify details of Liveboard. */ -declare class ResponseActivationURL { +declare class LiveboardOptions { /** - * Activation link to activate the user. + * Unique ID or name of visualizations. */ - 'activation_link'?: string | null; + 'visualization_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9407,11 +9472,14 @@ declare class ResponseActivationURL { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ResponseCopyObject { +/** +* Options to specify details of Liveboard. +*/ +declare class LiveboardOptionsInput { /** - * The unique identifier of the object. + * Unique ID or name of visualizations. */ - 'metadata_id'?: string | null; + 'visualization_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9439,29 +9507,15 @@ declare class ResponseCopyObject { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Custom action details -*/ -declare class ResponseCustomAction { - 'action_details': ActionDetails; - 'default_action_config': DefaultActionConfig; - /** - * Unique Id of the custom action. - */ - 'id': string; - /** - * Metadata objects to assign the the custom action to. - */ - 'metadata_association'?: Array | null; +declare class LogResponse { /** - * Unique name of the custom action. + * Date timestamp of the log entry */ - 'name': string; + 'date': string; /** - * Unique ID or name of the User groups which are associated with the custom action. + * Log data */ - 'user_groups'?: Array | null; + 'log': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9489,19 +9543,23 @@ declare class ResponseCustomAction { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the failed worksheet. -*/ -declare class ResponseFailedEntity { - 'id': string; +declare class LoginRequest { /** - * Name of the worksheet that failed to convert. + * Username of the ThoughtSpot user */ - 'name': string; + 'username'?: string; /** - * Error details related to the failed conversion. + * Password of the user account */ - 'error': string; + 'password'?: string; + /** + * ID of the Org context to log in to. If Org ID is not specified, the user will be logged in to the Org context of their previous login session. + */ + 'org_identifier'?: string; + /** + * A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests. + */ + 'remember_me'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9530,16 +9588,21 @@ declare class ResponseFailedEntity { * Do not edit the class manually. */ -/** -* Wrapper for the failed entities, as they are inside a \'data\' field in the response. -*/ -declare class ResponseFailedEntities { - 'data': Array; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; +declare class MetadataAssociationItem { + 'action_config': ActionConfig; + /** + * Unique ID or name of the metadata. + */ + 'identifier': string; + /** + * Type of metadata. 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. + */ + 'type': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; format: string; }>; static getAttributeTypeMap(): { @@ -9562,19 +9625,23 @@ declare class ResponseFailedEntities { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the incomplete worksheet. -*/ -declare class ResponseIncompleteEntity { - 'id': string; +declare class MetadataContext { /** - * Name of the incomplete worksheet. + * List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them. */ - 'name': string; + 'data_source_identifiers'?: Array | null; /** - * Error details related to the incomplete conversion. + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'error': string; + 'answer_identifiers'?: Array | null; + /** + * Unique identifier to denote current conversation. + */ + 'conversation_identifier'?: string | null; + /** + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'liveboard_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9602,12 +9669,9 @@ declare class ResponseIncompleteEntity { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Wrapper for the incomplete entities, as they are inside a \'data\' field in the response. -*/ -declare class ResponseIncompleteEntities { - 'data': Array; +declare class MetadataInput { + 'identifier'?: string | null; + 'type'?: MetadataInputTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9623,6 +9687,7 @@ declare class ResponseIncompleteEntities { }[]; constructor(); } +type MetadataInputTypeEnum = "LIVEBOARD"; /** * ThoughtSpot Public REST API @@ -9635,31 +9700,27 @@ declare class ResponseIncompleteEntities { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ResponseMessage { - /** - * Unique identifier of the generated response. - */ - 'session_identifier'?: string | null; +declare class MetadataListItemInput { /** - * Generate number of the response. + * Unique ID or name of the metadata. */ - 'generation_number'?: number | null; + 'identifier'?: string | null; /** - * Type of the generated response. + * CustomObjectId of the metadata. */ - 'message_type': ResponseMessageMessageTypeEnum; + 'obj_identifier'?: string | null; /** - * Generated visualization type. + * A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match. */ - 'visualization_type'?: ResponseMessageVisualizationTypeEnum | null; + 'name_pattern'?: string | null; /** - * Tokens for the response. + * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view. 5. CONNECTION for creating or modify data connections. 6. TAG for tag objects. 7. USER for user objects. 8. USER_GROUP for group objects. 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values 10. INSIGHT_SPEC for SpotIQ objects */ - 'tokens'?: string | null; + 'type'?: MetadataListItemInputTypeEnum | null; /** - * User friendly tokens for the response. + * List of subtype of metadata. Applies for LOGICAL_TABLE type with the following valid values. 1. ONE_TO_ONE_LOGICAL 2. WORKSHEET 3. PRIVATE_WORKSHEET. 4. USER_DEFINED. 5. AGGR_WORKSHEET. 6. SQL_VIEW Version: 10.11.0.cl or later */ - 'display_tokens'?: string | null; + 'subtypes'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9675,8 +9736,8 @@ declare class ResponseMessage { }[]; constructor(); } -type ResponseMessageMessageTypeEnum = "TSAnswer"; -type ResponseMessageVisualizationTypeEnum = "Chart" | "Table" | "Undefined"; +type MetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; +type MetadataListItemInputSubtypesEnum = "ONE_TO_ONE_LOGICAL" | "WORKSHEET" | "PRIVATE_WORKSHEET" | "USER_DEFINED" | "AGGR_WORKSHEET" | "SQL_VIEW"; /** * ThoughtSpot Public REST API @@ -9689,19 +9750,10 @@ type ResponseMessageVisualizationTypeEnum = "Chart" | "Table" | "Undefined"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the worksheet that failed post-upgrade. -*/ -declare class ResponsePostUpgradeFailedEntity { +declare class MetadataResponse { + 'name'?: string | null; 'id': string; - /** - * Name of the worksheet that failed post-upgrade. - */ - 'name': string; - /** - * Error details related to the post-upgrade failure. - */ - 'error': string; + 'type': MetadataResponseTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9717,6 +9769,7 @@ declare class ResponsePostUpgradeFailedEntity { }[]; constructor(); } +type MetadataResponseTypeEnum = "LIVEBOARD"; /** * ThoughtSpot Public REST API @@ -9729,12 +9782,50 @@ declare class ResponsePostUpgradeFailedEntity { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Wrapper for the post-upgrade failed entities, as they are inside a \'data\' field in the response. +* Metadata Search Response Object. */ -declare class ResponsePostUpgradeFailedEntities { - 'data': Array; +declare class MetadataSearchResponse { + /** + * Unique identifier of the metadata. + */ + 'metadata_id'?: string | null; + /** + * Name of the metadata. + */ + 'metadata_name'?: string | null; + /** + * Type of the metadata. + */ + 'metadata_type': MetadataSearchResponseMetadataTypeEnum; + /** + * Custom identifier of the metadata. (Available from 10.8.0.cl onwards) + */ + 'metadata_obj_id'?: string | null; + /** + * Details of dependent objects of the metadata objects. + */ + 'dependent_objects'?: any | null; + /** + * Details of incomplete information of the metadata objects if any. + */ + 'incomplete_objects'?: Array | null; + /** + * Complete details of the metadata objects. + */ + 'metadata_detail'?: any | null; + /** + * Header information of the metadata objects. + */ + 'metadata_header'?: any | null; + /** + * Visualization header information of the metadata objects. + */ + 'visualization_headers'?: Array | null; + /** + * Stats of the metadata object. Includes views, favorites, last_accessed. + */ + 'stats'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9750,6 +9841,7 @@ declare class ResponsePostUpgradeFailedEntities { }[]; constructor(); } +type MetadataSearchResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -9763,29 +9855,17 @@ declare class ResponsePostUpgradeFailedEntities { * Do not edit the class manually. */ /** -* Schedule run response object +* Sort options. */ -declare class ResponseScheduleRun { - /** - * GUID of the scheduled job. - */ - 'id': string; - /** - * Schedule run start time in milliseconds. - */ - 'start_time_in_millis': number; - /** - * Schedule run end time in milliseconds. - */ - 'end_time_in_millis': number; +declare class MetadataSearchSortOptions { /** - * Status of the schedule run. + * Name of the field to apply the sort on. */ - 'status': string; + 'field_name'?: MetadataSearchSortOptionsFieldNameEnum | null; /** - * Message details related to the schedule run. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'detail'?: string | null; + 'order'?: MetadataSearchSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9801,6 +9881,8 @@ declare class ResponseScheduleRun { }[]; constructor(); } +type MetadataSearchSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; +type MetadataSearchSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -9813,50 +9895,19 @@ declare class ResponseScheduleRun { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ResponseSchedule { - 'author': Author; - /** - * Schedule creation time in milliseconds. - */ - 'creation_time_in_millis': any; - /** - * Description of the job. - */ - 'description'?: string | null; - /** - * Export file format. - */ - 'file_format': string; - 'frequency': Frequency; - /** - * GUID of the scheduled job. - */ - 'id': string; - 'liveboard_options'?: LiveboardOptions; - 'metadata': MetadataResponse; - /** - * Name of the scheduled job. - */ - 'name': string; - 'pdf_options'?: PdfOptions; - 'recipient_details': RecipientDetails; - /** - * Status of the job - */ - 'status'?: string | null; +declare class ModelTableList { /** - * Time zone + * Name of the Model. */ - 'time_zone': string; + 'model_name': string; /** - * Schedule runs history records. + * Model directory path, this is optional param and required if there are duplicate models with the same name. */ - 'history_runs'?: Array | null; + 'model_path'?: string | null; /** - * Personalised view id of the liveboard to be scheduled. + * List of Tables. */ - 'personalised_view_id'?: string | null; + 'tables': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9884,15 +9935,15 @@ declare class ResponseSchedule { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the worksheet. -*/ -declare class ResponseSuccessfulEntity { - 'id': string; +declare class NLInstructionsInfoInput { /** - * Name of the worksheet. + * User instructions for natural language processing. */ - 'name': string; + 'instructions': Array; + /** + * Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. + */ + 'scope': NLInstructionsInfoInputScopeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9908,6 +9959,7 @@ declare class ResponseSuccessfulEntity { }[]; constructor(); } +type NLInstructionsInfoInputScopeEnum = "GLOBAL"; /** * ThoughtSpot Public REST API @@ -9920,12 +9972,18 @@ declare class ResponseSuccessfulEntity { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Wrapper for the successful entities, as they are inside a \'data\' field in the response. +* The object representation with ID and Name. */ -declare class ResponseSuccessfulEntities { - 'data': Array; +declare class ObjectIDAndName { + /** + * The unique identifier of the object. + */ + 'id'?: string | null; + /** + * Name of the object. + */ + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9953,36 +10011,18 @@ declare class ResponseSuccessfulEntities { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Name of the conversion process, which involves converting worksheets to models. +* The current Org context of the user. */ -declare class ResponseWorksheetToModelConversion { - 'name': string; - /** - * The number of worksheets successfully converted to models. - */ - 'success_count': number; - /** - * The number of worksheets that failed to convert. - */ - 'failure_count': number; - /** - * The number of worksheets that were incomplete during the conversion process. - */ - 'incomplete_count': number; +declare class Org { /** - * The number of worksheets that failed after an upgrade during the conversion process. + * The ID of the object. */ - 'post_upgrade_failed_count': number; + 'id': number; /** - * The total time taken to complete the conversion process in milliseconds. + * Name of the object. */ - 'total_time_in_millis': number; - 'successful_entities': ResponseSuccessfulEntities; - 'failed_entities': ResponseFailedEntities; - 'incomplete_entities': ResponseIncompleteEntities; - 'post_upgrade_failed_entities': ResponsePostUpgradeFailedEntities; + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10010,20 +10050,15 @@ declare class ResponseWorksheetToModelConversion { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RevertCommitRequest { - /** - * Metadata objects. - */ - 'metadata'?: Array; +declare class OrgPreferenceSearchCriteriaInput { /** - * Name of the branch where the reverted version should be committed Note: If no branch_name is specified, then the commit_branch_name will be considered. + * Unique identifier or name of the org */ - 'branch_name'?: string; + 'org_identifier': string; /** - * Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL] + * Event types to search for. If not provided, all event types for this org are returned. */ - 'revert_policy'?: RevertCommitRequestRevertPolicyEnum; + 'event_types'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10039,7 +10074,7 @@ declare class RevertCommitRequest { }[]; constructor(); } -type RevertCommitRequestRevertPolicyEnum = "ALL_OR_NONE" | "PARTIAL"; +type OrgPreferenceSearchCriteriaInputEventTypesEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -10052,27 +10087,27 @@ type RevertCommitRequestRevertPolicyEnum = "ALL_OR_NONE" | "PARTIAL"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RevertedMetadata { +declare class OrgResponse { /** - * Name of the file deployed + * Unique identifier of the Org. */ - 'file_name': string; + 'id'?: number | null; /** - * Name of the metadata object + * Name of the Org. */ - 'metadata_name': string; + 'name'?: string | null; /** - * Type of the metadata object + * Status of the Org. */ - 'metadata_type': string; + 'status'?: OrgResponseStatusEnum | null; /** - * Indicates the status of deployment for the file + * Description of the Org. */ - 'status_code': string; + 'description'?: string | null; /** - * Any error or warning with the deployment + * Visibility of the Org. */ - 'status_message': string; + 'visibility'?: OrgResponseVisibilityEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10088,6 +10123,8 @@ declare class RevertedMetadata { }[]; constructor(); } +type OrgResponseStatusEnum = "ACTIVE" | "IN_ACTIVE"; +type OrgResponseVisibilityEnum = "SHOW" | "HIDDEN"; /** * ThoughtSpot Public REST API @@ -10100,34 +10137,27 @@ declare class RevertedMetadata { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RevertResponse { - 'committer'?: CommiterType; - 'author'?: AuthorType; - /** - * Comments associated with the commit - */ - 'comment'?: string | null; +declare class ParameterizeMetadataRequest { /** - * Time at which the changes were committed. + * Type of metadata object to parameterize. */ - 'commit_time'?: string | null; + 'metadata_type'?: ParameterizeMetadataRequestMetadataTypeEnum; /** - * SHA id associated with the commit + * Unique ID or name of the metadata object to parameterize. */ - 'commit_id'?: string | null; + 'metadata_identifier': string; /** - * Branch where changes were committed + * Type of field in the metadata to parameterize. */ - 'branch'?: string | null; + 'field_type': ParameterizeMetadataRequestFieldTypeEnum; /** - * Files that were pushed as part of this commit + * Name of the field which needs to be parameterized. */ - 'committed_files'?: Array | null; + 'field_name': string; /** - * Metadata of reverted file of this commit + * Unique ID or name of the variable to use for parameterization */ - 'reverted_metadata'?: Array | null; + 'variable_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10143,6 +10173,8 @@ declare class RevertResponse { }[]; constructor(); } +type ParameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; +type ParameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; /** * ThoughtSpot Public REST API @@ -10155,9 +10187,46 @@ declare class RevertResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RevokeTokenRequest { - 'user_identifier'?: string; - 'token'?: string; +/** +* Options for PDF export. +*/ +declare class PdfOptions { + /** + * Indicates whether to include complete Liveboard. + */ + 'complete_liveboard'?: boolean | null; + /** + * Indicates whether to include cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page + */ + 'include_page_number'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: PdfOptionsPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10173,6 +10242,7 @@ declare class RevokeTokenRequest { }[]; constructor(); } +type PdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -10185,9 +10255,35 @@ declare class RevokeTokenRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RiseGQLArgWrapper { - 'name': string; - 'type': string; +declare class PdfOptionsInput { + /** + * Indicates whether to include the cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page. + */ + 'include_page_number'?: boolean | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: PdfOptionsInputPageOrientationEnum | null; + /** + * Indicates whether to include only the first page of the tables. + */ + 'truncate_table'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10203,6 +10299,7 @@ declare class RiseGQLArgWrapper { }[]; constructor(); } +type PdfOptionsInputPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; /** * ThoughtSpot Public REST API @@ -10215,9 +10312,16 @@ declare class RiseGQLArgWrapper { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RiseSetter { - 'field': string; - 'path': string; + +/** +* Details of users or groups. +*/ +declare class PermissionInput { + 'principal': PrincipalsInput; + /** + * Object share mode. + */ + 'share_mode': PermissionInputShareModeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10233,6 +10337,7 @@ declare class RiseSetter { }[]; constructor(); } +type PermissionInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -10245,15 +10350,8 @@ declare class RiseSetter { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Role { - /** - * id of the role - */ - 'id'?: string | null; - /** - * name of the role - */ - 'name'?: string | null; +declare class PermissionOfMetadataResponse { + 'metadata_permission_details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10281,76 +10379,8 @@ declare class Role { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RoleResponse { - /** - * Unique Id of the role. - */ - 'id': string; - /** - * Name of the role - */ - 'name': string; - /** - * Description of the role - */ - 'description': string; - /** - * number of groups assigned with this role - */ - 'groups_assigned_count'?: number | null; - /** - * Orgs in which role exists. - */ - 'orgs'?: Array | null; - /** - * Details of groups assigned with this role - */ - 'groups'?: Array | null; - /** - * Privileges granted to the role. - */ - 'privileges': Array; - /** - * Permission details of the Role - */ - 'permission'?: RoleResponsePermissionEnum | null; - /** - * Unique identifier of author of the role. - */ - 'author_id'?: string | null; - /** - * Unique identifier of modifier of the role. - */ - 'modifier_id'?: string | null; - /** - * Creation time of the role in milliseconds. - */ - 'creation_time_in_millis'?: any | null; - /** - * Last modified time of the role in milliseconds. - */ - 'modification_time_in_millis'?: any | null; - /** - * Indicates whether the role is deleted. - */ - 'deleted'?: boolean | null; - /** - * Indicates whether the role is deprecated. - */ - 'deprecated'?: boolean | null; - /** - * Indicates whether the role is external. - */ - 'external'?: boolean | null; - /** - * Indicates whether the role is hidden. - */ - 'hidden'?: boolean | null; - /** - * Indicates whether the role is shared via connection - */ - 'shared_via_connection'?: boolean | null; +declare class PermissionOfPrincipalsResponse { + 'principal_permission_details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10366,8 +10396,6 @@ declare class RoleResponse { }[]; constructor(); } -type RoleResponsePrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE"; -type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -10380,18 +10408,35 @@ type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* List of runtime parameters need to set during the session. -*/ -declare class RuntimeFilter { +declare class PngOptionsInput { /** - * Runtime filter parameter type in JWT. + * Indicates whether to include the cover page with the Liveboard title. */ - 'runtime_filter'?: any; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates personalised view of the Liveboard in case of png + */ + 'personalised_view_id'?: string | null; + /** + * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later + */ + 'image_resolution'?: number | null; + /** + * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later + */ + 'image_scale'?: number | null; + /** + * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later + */ + 'include_header'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; type: string; format: string; }>; @@ -10415,14 +10460,15 @@ declare class RuntimeFilter { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* List of runtime parameters need to set during the session. -*/ -declare class RuntimeParamOverride { +declare class PrincipalsListItem { /** - * Runtime param override type in JWT. + * Unique ID or name of the user or group. */ - 'runtime_param_override'?: any; + 'identifier': string; + /** + * Principal type. Valid values are + */ + 'type': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10450,14 +10496,15 @@ declare class RuntimeParamOverride { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* List of runtime parameters need to set during the session. -*/ -declare class RuntimeSort { +declare class PublishMetadataListItem { /** - * Runtime sort parameter type in JWT. + * Unique ID or name of the metadata. */ - 'runtime_sort'?: any; + 'identifier': string; + /** + * Type of metadata. Required if identifier is name. + */ + 'type'?: PublishMetadataListItemTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10473,6 +10520,7 @@ declare class RuntimeSort { }[]; constructor(); } +type PublishMetadataListItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -10485,19 +10533,20 @@ declare class RuntimeSort { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ScheduleHistoryRunsOptionsInput { + +declare class PublishMetadataRequest { /** - * Indicates whether to fetch history runs for the scheduled notification. + * Metadata objects to be published. */ - 'include_history_runs'?: boolean | null; + 'metadata': Array; /** - * Indicates the max number of records that can be fetched as past runs of any scheduled job. + * Unique ID or name of orgs to which metadata objects should be published. */ - 'record_size'?: number | null; + 'org_identifiers': Array; /** - * Indicates the starting record number from where history runs records should be fetched. + * Skip validations of objects to be published. */ - 'record_offset'?: number | null; + 'skip_validation'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10526,45 +10575,79 @@ declare class ScheduleHistoryRunsOptionsInput { * Do not edit the class manually. */ /** -* Options for PDF export. +* NLSRequest object containing user query & instructions. */ -declare class SchedulesPdfOptionsInput { +declare class QueryGetDecomposedQueryRequestNlsRequest { /** - * Indicates whether to include complete Liveboard. + * Cluster version like 10.4.0.cl, 10.5.0.cl, so on. */ - 'complete_liveboard'?: boolean | null; + 'agentVersion'?: number | null; /** - * Indicates whether to include cover page with the Liveboard title. + * If true, results are not returned from cache & calculated every time. Can incur high costs & latency. */ - 'include_cover_page'?: boolean | null; + 'bypassCache'?: boolean | null; /** - * Indicates whether to include customized wide logo in the footer if available. + * User specific instructions for processing the @query. */ - 'include_custom_logo'?: boolean | null; + 'instructions'?: Array | null; /** - * Indicates whether to include a page with all applied filters. + * User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions. */ - 'include_filter_page'?: boolean | null; + 'query'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class QueryGetDecomposedQueryRequest { /** - * Indicates whether to include page number in the footer of each page + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'include_page_number'?: boolean | null; + 'answerIds'?: Array; /** - * Text to include in the footer of each page. + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. */ - 'page_footer_text'?: string | null; + 'content'?: Array; /** - * Page orientation of the PDF. + * Unique identifier to denote current conversation. */ - 'page_orientation'?: string | null; + 'conversationId'?: string; /** - * Page size. + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'page_size'?: SchedulesPdfOptionsInputPageSizeEnum | null; + 'liveboardIds'?: Array; /** - * Indicates whether to include only first page of the tables. + * Maximum number of decomposed queries that is allowed in the response, default = 5. */ - 'truncate_table'?: boolean | null; + 'maxDecomposedQueries'?: number; + 'nlsRequest'?: QueryGetDecomposedQueryRequestNlsRequest; + /** + * List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them. + */ + 'worksheetIds'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10580,7 +10663,6 @@ declare class SchedulesPdfOptionsInput { }[]; constructor(); } -type SchedulesPdfOptionsInputPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -10593,19 +10675,19 @@ type SchedulesPdfOptionsInputPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Scope { - /** - * Object access scope type. - */ - 'access_type': string; + +/** +* Recipient configuration which includes email address, ID or name of the users and groups. +*/ +declare class RecipientDetails { /** - * Unique identifier of the metadata. + * Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user. */ - 'org_id'?: number | null; + 'emails'?: Array | null; /** - * Unique identifier of the Org. + * List of user or groups to subscribe for the scheduled job notifications. */ - 'metadata_id'?: string | null; + 'principals'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10633,18 +10715,19 @@ declare class Scope { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Sort options. +* Recipients of the scheduled job notification. */ -declare class SearchCalendarsRequestSortOptions { +declare class RecipientDetailsInput { /** - * Name of the field to apply the sort on. + * Emails of the recipients. */ - 'field_name'?: SearchCalendarsRequestSortOptionsFieldNameEnum | null; + 'emails'?: Array | null; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * User or groups to be set as recipients of the schedule notifications. */ - 'order'?: SearchCalendarsRequestSortOptionsOrderEnum | null; + 'principals'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10660,8 +10743,6 @@ declare class SearchCalendarsRequestSortOptions { }[]; constructor(); } -type SearchCalendarsRequestSortOptionsFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SearchCalendarsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -10674,25 +10755,23 @@ type SearchCalendarsRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchCalendarsRequest { +declare class RegionalSettingsInput { /** - * Unique ID or name of the connection. + * ISO code to be appended with currency values. */ - 'connection_identifier'?: string; + 'currency_format'?: RegionalSettingsInputCurrencyFormatEnum | null; /** - * Pattern to match for calendar names (use \'%\' for wildcard match). + * Indicates the locale to be used for all formattings. */ - 'name_pattern'?: string; + 'user_locale'?: RegionalSettingsInputUserLocaleEnum | null; /** - * The starting record number from where the records should be included. + * Indicates the locale to be used for number formatting. */ - 'record_offset'?: number; + 'number_format_locale'?: RegionalSettingsInputNumberFormatLocaleEnum | null; /** - * The number of records that should be included. + * Indicates the locale to be used for date formatting. */ - 'record_size'?: number; - 'sort_options'?: SearchCalendarsRequestSortOptions; + 'date_format_locale'?: RegionalSettingsInputDateFormatLocaleEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10708,6 +10787,10 @@ declare class SearchCalendarsRequest { }[]; constructor(); } +type RegionalSettingsInputCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; +type RegionalSettingsInputUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type RegionalSettingsInputNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type RegionalSettingsInputDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -10720,27 +10803,33 @@ declare class SearchCalendarsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchCommitsRequest { + +declare class RepoConfigObject { /** - * Unique ID or name of the metadata. + * Remote repository URL configured */ - 'metadata_identifier': string; + 'repository_url'?: string | null; /** - * Type of metadata. + * Username to authenticate connection to the version control system */ - 'metadata_type'?: SearchCommitsRequestMetadataTypeEnum; + 'username'?: string | null; /** - * Name of the branch from which commit history needs to be displayed. Note: If no branch_name is specified, then commits will be returned for the default branch for this configuration. + * Name of the remote branch where objects from this Thoughtspot instance will be versioned. */ - 'branch_name'?: string; + 'commit_branch_name'?: string | null; /** - * Record offset point in the commit history to display the response. Note: If no record offset is specified, the beginning of the record will be considered. + * Branches that have been pulled in local repository */ - 'record_offset'?: number; + 'branches'?: Array | null; /** - * Number of history records from record offset point to be displayed in the response. Note: If no record size is specified, then all the records will be considered. + * Maintain mapping of guid for the deployment to an instance */ - 'record_size'?: number; + 'enable_guid_mapping'?: boolean | null; + /** + * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. + */ + 'configuration_branch_name'?: string | null; + 'org'?: Org; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10756,7 +10845,6 @@ declare class SearchCommitsRequest { }[]; constructor(); } -type SearchCommitsRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CUSTOM_ACTION"; /** * ThoughtSpot Public REST API @@ -10769,11 +10857,15 @@ type SearchCommitsRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchConfigRequest { +declare class ResetUserPasswordRequest { /** - * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later + * New password for the user. */ - 'org_identifiers'?: Array; + 'new_password': string; + /** + * GUID or name of the user. + */ + 'user_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10802,17 +10894,13 @@ declare class SearchConfigRequest { * Do not edit the class manually. */ /** -* Sort options. +* The object representation with activation link. */ -declare class SearchConnectionRequestSortOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: SearchConnectionRequestSortOptionsFieldNameEnum | null; +declare class ResponseActivationURL { /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Activation link to activate the user. */ - 'order'?: SearchConnectionRequestSortOptionsOrderEnum | null; + 'activation_link'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10828,8 +10916,6 @@ declare class SearchConnectionRequestSortOptions { }[]; constructor(); } -type SearchConnectionRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; -type SearchConnectionRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -10842,49 +10928,11 @@ type SearchConnectionRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchConnectionRequest { +declare class ResponseCopyObject { /** - * List of connections and name pattern - */ - 'connections'?: Array; - /** - * Array of types of data warehouse defined for the connection. - */ - 'data_warehouse_types'?: Array; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records that should be included. - */ - 'record_size'?: number; - /** - * Unique ID or name of tags. - */ - 'tag_identifiers'?: Array; - /** - * Data warehouse object type. - */ - 'data_warehouse_object_type'?: SearchConnectionRequestDataWarehouseObjectTypeEnum; - 'sort_options'?: SearchConnectionRequestSortOptions; - /** - * Indicates whether to include complete details of the connection objects. - */ - 'include_details'?: boolean | null; - /** - * Configuration values. If empty we are fetching configuration from datasource based on given connection id. If required you can provide config details to fetch specific details. Example input: {}, {\"warehouse\":\"SMALL_WH\",\"database\":\"DEVELOPMENT\"}. This is only applicable when data_warehouse_object_type is selected. - */ - 'configuration'?: any; - /** - * List of authentication types to fetch data_ware_house_objects from external Data warehouse. This is only applicable when data_warehouse_object_type is selected. - */ - 'authentication_type'?: SearchConnectionRequestAuthenticationTypeEnum; - /** - *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. + * The unique identifier of the object. */ - 'show_resolved_parameters'?: boolean | null; + 'metadata_id'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10900,9 +10948,6 @@ declare class SearchConnectionRequest { }[]; constructor(); } -type SearchConnectionRequestDataWarehouseTypesEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; -type SearchConnectionRequestDataWarehouseObjectTypeEnum = "DATABASE" | "SCHEMA" | "TABLE" | "COLUMN"; -type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "IAM" | "EXTOAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "PERSONAL_ACCESS_TOKEN" | "KEY_PAIR" | "OAUTH_WITH_PKCE" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PEZ"; /** * ThoughtSpot Public REST API @@ -10916,28 +10961,28 @@ type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" * Do not edit the class manually. */ -declare class SearchConnectionResponse { +/** +* Custom action details +*/ +declare class ResponseCustomAction { + 'action_details': ActionDetails; + 'default_action_config': DefaultActionConfig; /** - * Unique ID of the connection. + * Unique Id of the custom action. */ 'id': string; /** - * Name of the connection. - */ - 'name': string; - /** - * Description of the connection. + * Metadata objects to assign the the custom action to. */ - 'description'?: string | null; + 'metadata_association'?: Array | null; /** - * Type of data warehouse. + * Unique name of the custom action. */ - 'data_warehouse_type': SearchConnectionResponseDataWarehouseTypeEnum; - 'data_warehouse_objects'?: DataWarehouseObjects; + 'name': string; /** - * Details of the connection. + * Unique ID or name of the User groups which are associated with the custom action. */ - 'details'?: any | null; + 'user_groups'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10953,7 +10998,6 @@ declare class SearchConnectionResponse { }[]; constructor(); } -type SearchConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -10967,13 +11011,18 @@ type SearchConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSH * Do not edit the class manually. */ /** -* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. +* Unique ID of the failed worksheet. */ -declare class SearchCustomActionsRequestDefaultActionConfig { +declare class ResponseFailedEntity { + 'id': string; /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Name of the worksheet that failed to convert. */ - 'visibility'?: boolean | null; + 'name': string; + /** + * Error details related to the failed conversion. + */ + 'error': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11002,32 +11051,11 @@ declare class SearchCustomActionsRequestDefaultActionConfig { * Do not edit the class manually. */ -declare class SearchCustomActionsRequest { - /** - * Name or ID of the custom action. - */ - 'custom_action_identifier'?: string; - /** - * A pattern to match case-insensitive name of the custom-action object. - */ - 'name_pattern'?: string; - 'default_action_config'?: SearchCustomActionsRequestDefaultActionConfig; - /** - * When set to true, returns the associated groups for a custom action. - */ - 'include_group_associations'?: boolean | null; - /** - * When set to true, returns the associated metadata for a custom action. - */ - 'include_metadata_associations'?: boolean | null; - /** - * Search with a given metadata identifier. - */ - 'metadata'?: Array; - /** - * Filter the action objects based on type - */ - 'type'?: SearchCustomActionsRequestTypeEnum; +/** +* Wrapper for the failed entities, as they are inside a \'data\' field in the response. +*/ +declare class ResponseFailedEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11043,7 +11071,6 @@ declare class SearchCustomActionsRequest { }[]; constructor(); } -type SearchCustomActionsRequestTypeEnum = "CALLBACK" | "URL"; /** * ThoughtSpot Public REST API @@ -11056,39 +11083,19 @@ type SearchCustomActionsRequestTypeEnum = "CALLBACK" | "URL"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchDataRequest { - /** - * Query string with search tokens. For example, [Sales][Region]. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api) - */ - 'query_string': string; - /** - * GUID of the data source object, such as a Worksheet, View, or Table. You can find the GUID of a data object from the UI or via API. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_query) for more details. - */ - 'logical_table_identifier': string; - /** - * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. - */ - 'data_format'?: SearchDataRequestDataFormatEnum; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records to include in a batch. - */ - 'record_size'?: number; - /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). - */ - 'runtime_filter'?: any; +/** +* Unique ID of the incomplete worksheet. +*/ +declare class ResponseIncompleteEntity { + 'id': string; /** - * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). + * Name of the incomplete worksheet. */ - 'runtime_sort'?: any; + 'name': string; /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * Error details related to the incomplete conversion. */ - 'runtime_param_override'?: any; + 'error': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11104,7 +11111,6 @@ declare class SearchDataRequest { }[]; constructor(); } -type SearchDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -11119,13 +11125,10 @@ type SearchDataRequestDataFormatEnum = "FULL" | "COMPACT"; */ /** -* Response format associated with the search data API. +* Wrapper for the incomplete entities, as they are inside a \'data\' field in the response. */ -declare class SearchDataResponse { - /** - * Data content of metadata objects - */ - 'contents': Array; +declare class ResponseIncompleteEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11153,11 +11156,31 @@ declare class SearchDataResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchEmailCustomizationRequest { +declare class ResponseMessage { /** - * Unique ID or name of org Version: 10.12.0.cl or later + * Unique identifier of the generated response. */ - 'org_identifiers'?: Array; + 'session_identifier'?: string | null; + /** + * Generate number of the response. + */ + 'generation_number'?: number | null; + /** + * Type of the generated response. + */ + 'message_type': ResponseMessageMessageTypeEnum; + /** + * Generated visualization type. + */ + 'visualization_type'?: ResponseMessageVisualizationTypeEnum | null; + /** + * Tokens for the response. + */ + 'tokens'?: string | null; + /** + * User friendly tokens for the response. + */ + 'display_tokens'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11173,6 +11196,8 @@ declare class SearchEmailCustomizationRequest { }[]; constructor(); } +type ResponseMessageMessageTypeEnum = "TSAnswer"; +type ResponseMessageVisualizationTypeEnum = "Chart" | "Table" | "Undefined"; /** * ThoughtSpot Public REST API @@ -11186,17 +11211,18 @@ declare class SearchEmailCustomizationRequest { * Do not edit the class manually. */ /** -* Options to sort the API response by objects set as favorites for the logged-in user or the users specified in the API request. +* Unique ID of the worksheet that failed post-upgrade. */ -declare class SearchMetadataRequestFavoriteObjectOptions { +declare class ResponsePostUpgradeFailedEntity { + 'id': string; /** - * Includes objects marked as favorite for the specified users. + * Name of the worksheet that failed post-upgrade. */ - 'include'?: boolean | null; + 'name': string; /** - * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. + * Error details related to the post-upgrade failure. */ - 'user_identifiers'?: Array | null; + 'error': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11224,18 +11250,12 @@ declare class SearchMetadataRequestFavoriteObjectOptions { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Sort options to filter metadata details. +* Wrapper for the post-upgrade failed entities, as they are inside a \'data\' field in the response. */ -declare class SearchMetadataRequestSortOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: SearchMetadataRequestSortOptionsFieldNameEnum | null; - /** - * Sort order : ASC(Ascending) or DESC(Descending). - */ - 'order'?: SearchMetadataRequestSortOptionsOrderEnum | null; +declare class ResponsePostUpgradeFailedEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11251,8 +11271,6 @@ declare class SearchMetadataRequestSortOptions { }[]; constructor(); } -type SearchMetadataRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; -type SearchMetadataRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -11265,102 +11283,30 @@ type SearchMetadataRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchMetadataRequest { - /** - * Metadata objects such as Liveboards, Answers, and Worksheets. - */ - 'metadata'?: Array; - /** - * Object permission details to search by. - */ - 'permissions'?: Array; - /** - * GUID or name of user who created the metadata object. - */ - 'created_by_user_identifiers'?: Array; +/** +* Schedule run response object +*/ +declare class ResponseScheduleRun { /** - * Version of the dependent table of the metadata objects like Worksheets. + * GUID of the scheduled job. */ - 'dependent_object_version'?: SearchMetadataRequestDependentObjectVersionEnum; + 'id': string; /** - * List of metadata objects to exclude from search. + * Schedule run start time in milliseconds. */ - 'exclude_objects'?: Array; - 'favorite_object_options'?: SearchMetadataRequestFavoriteObjectOptions; + 'start_time_in_millis': number; /** - * Includes system-generated metadata objects. + * Schedule run end time in milliseconds. */ - 'include_auto_created_objects'?: boolean | null; + 'end_time_in_millis': number; /** - * Includes dependents of the metadata object specified in the API request. For example, a worksheet can consist of dependent objects such as Liveboards or Answers. + * Status of the schedule run. */ - 'include_dependent_objects'?: boolean | null; + 'status': string; /** - * The maximum number of dependents to include per metadata object. + * Message details related to the schedule run. */ - 'dependent_objects_record_size'?: number; - /** - * Includes complete details of the metadata objects. - */ - 'include_details'?: boolean | null; - /** - * Includes headers of the metadata objects. - */ - 'include_headers'?: boolean | null; - /** - * Includes details of the hidden objects, such as a column in a worksheet or a table. - */ - 'include_hidden_objects'?: boolean | null; - /** - * Includes objects with incomplete metadata. - */ - 'include_incomplete_objects'?: boolean | null; - /** - * Includes visualization headers of the specified Liveboard object. - */ - 'include_visualization_headers'?: boolean | null; - /** - * If search assistance lessons are configured on a worksheet, the API returns the search assist data for Worksheet objects. - */ - 'include_worksheet_search_assist_data'?: boolean | null; - /** - * Includes ID or names of the users who modified the metadata object. - */ - 'modified_by_user_identifiers'?: Array; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records that should be included. It is recommended to use a smaller `record_size` when fetching dependent objects or any of the additional metadata detail options. - */ - 'record_size'?: number; - 'sort_options'?: SearchMetadataRequestSortOptions; - /** - * Tags to filter metadata objects by - */ - 'tag_identifiers'?: Array; - /** - * Indicates whether to include stats of the metadata objects. - */ - 'include_stats'?: boolean | null; - /** - *
Version: 10.7.0.cl or later
Boolean to indicate whether to include discoverable metadata objects. - */ - 'include_discoverable_objects'?: boolean | null; - /** - *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. - */ - 'show_resolved_parameters'?: boolean | null; - /** - * Indicates the model version of Liveboard to be attached in metadata detail. - */ - 'liveboard_response_version'?: SearchMetadataRequestLiveboardResponseVersionEnum; - /** - *
Version: 10.11.0.cl or later
If only published objects should be returned - */ - 'include_only_published_objects'?: boolean | null; + 'detail'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11376,8 +11322,6 @@ declare class SearchMetadataRequest { }[]; constructor(); } -type SearchMetadataRequestDependentObjectVersionEnum = "V1" | "V2"; -type SearchMetadataRequestLiveboardResponseVersionEnum = "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -11390,27 +11334,50 @@ type SearchMetadataRequestLiveboardResponseVersionEnum = "V1" | "V2"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchOrgsRequest { + +declare class ResponseSchedule { + 'author': Author; /** - * ID or name of the Org + * Schedule creation time in milliseconds. */ - 'org_identifier'?: string; + 'creation_time_in_millis': any; /** - * Description of the Org + * Description of the job. */ - 'description'?: string; + 'description'?: string | null; /** - * Visibility of the Org + * Export file format. */ - 'visibility'?: SearchOrgsRequestVisibilityEnum; + 'file_format': string; + 'frequency': Frequency; /** - * Status of the Org + * GUID of the scheduled job. */ - 'status'?: SearchOrgsRequestStatusEnum; + 'id': string; + 'liveboard_options'?: LiveboardOptions; + 'metadata': MetadataResponse; /** - * GUIDs or names of the users for which you want to retrieve the Orgs data + * Name of the scheduled job. */ - 'user_identifiers'?: Array; + 'name': string; + 'pdf_options'?: PdfOptions; + 'recipient_details': RecipientDetails; + /** + * Status of the job + */ + 'status'?: string | null; + /** + * Time zone + */ + 'time_zone': string; + /** + * Schedule runs history records. + */ + 'history_runs'?: Array | null; + /** + * Personalised view id of the liveboard to be scheduled. + */ + 'personalised_view_id'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11426,8 +11393,6 @@ declare class SearchOrgsRequest { }[]; constructor(); } -type SearchOrgsRequestVisibilityEnum = "SHOW" | "HIDDEN"; -type SearchOrgsRequestStatusEnum = "ACTIVE" | "IN_ACTIVE"; /** * ThoughtSpot Public REST API @@ -11440,79 +11405,15 @@ type SearchOrgsRequestStatusEnum = "ACTIVE" | "IN_ACTIVE"; * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Response for search role api should handle hidden privileges as well. +* Unique ID of the worksheet. */ -declare class SearchRoleResponse { - /** - * Unique Id of the role. - */ +declare class ResponseSuccessfulEntity { 'id': string; /** - * Name of the role + * Name of the worksheet. */ 'name': string; - /** - * Description of the role - */ - 'description': string; - /** - * number of groups assigned with this role - */ - 'groups_assigned_count'?: number | null; - /** - * Orgs in which role exists. - */ - 'orgs'?: Array | null; - /** - * Details of groups assigned with this role - */ - 'groups'?: Array | null; - /** - * Privileges granted to the role. - */ - 'privileges': Array; - /** - * Permission details of the Role - */ - 'permission'?: SearchRoleResponsePermissionEnum | null; - /** - * Unique identifier of author of the role. - */ - 'author_id'?: string | null; - /** - * Unique identifier of modifier of the role. - */ - 'modifier_id'?: string | null; - /** - * Creation time of the role in milliseconds. - */ - 'creation_time_in_millis'?: any | null; - /** - * Last modified time of the role in milliseconds. - */ - 'modification_time_in_millis'?: any | null; - /** - * Indicates whether the role is deleted. - */ - 'deleted'?: boolean | null; - /** - * Indicates whether the role is deprecated. - */ - 'deprecated'?: boolean | null; - /** - * Indicates whether the role is external. - */ - 'external'?: boolean | null; - /** - * Indicates whether the role is hidden. - */ - 'hidden'?: boolean | null; - /** - * Indicates whether the role is shared via connection - */ - 'shared_via_connection'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11528,8 +11429,6 @@ declare class SearchRoleResponse { }[]; constructor(); } -type SearchRoleResponsePrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -11542,39 +11441,12 @@ type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchRolesRequest { - /** - * unique ID or name of the Roles - */ - 'role_identifiers'?: Array; - /** - * Unique Id or name of the Organisation - */ - 'org_identifiers'?: Array; - /** - * Unique Id or name of the User Group - */ - 'group_identifiers'?: Array; - /** - * Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. - */ - 'privileges'?: Array; - /** - * Indicates whether the Role is deprecated. - */ - 'deprecated'?: boolean | null; - /** - * Indicates whether the Role is external - */ - 'external'?: boolean | null; - /** - * Indicates whether the Role is shared via connection - */ - 'shared_via_connection'?: boolean | null; - /** - * Permission details of the Role - */ - 'permissions'?: Array; + +/** +* Wrapper for the successful entities, as they are inside a \'data\' field in the response. +*/ +declare class ResponseSuccessfulEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11590,8 +11462,6 @@ declare class SearchRolesRequest { }[]; constructor(); } -type SearchRolesRequestPrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -11604,22 +11474,36 @@ type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Options while fetching history runs for the schedule. +* Name of the conversion process, which involves converting worksheets to models. */ -declare class SearchSchedulesRequestHistoryRunsOptions { +declare class ResponseWorksheetToModelConversion { + 'name': string; /** - * Indicates whether to fetch history runs for the scheduled notification. + * The number of worksheets successfully converted to models. */ - 'include_history_runs'?: boolean | null; + 'success_count': number; /** - * Indicates the max number of records that can be fetched as past runs of any scheduled job. + * The number of worksheets that failed to convert. */ - 'record_size'?: number | null; + 'failure_count': number; /** - * Indicates the starting record number from where history runs records should be fetched. + * The number of worksheets that were incomplete during the conversion process. */ - 'record_offset'?: number | null; + 'incomplete_count': number; + /** + * The number of worksheets that failed after an upgrade during the conversion process. + */ + 'post_upgrade_failed_count': number; + /** + * The total time taken to complete the conversion process in milliseconds. + */ + 'total_time_in_millis': number; + 'successful_entities': ResponseSuccessfulEntities; + 'failed_entities': ResponseFailedEntities; + 'incomplete_entities': ResponseIncompleteEntities; + 'post_upgrade_failed_entities': ResponsePostUpgradeFailedEntities; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11647,18 +11531,20 @@ declare class SearchSchedulesRequestHistoryRunsOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options. -*/ -declare class SearchSchedulesRequestSortOptions { + +declare class RevertCommitRequest { /** - * Name of the field to apply the sort on. + * Metadata objects. */ - 'field_name'?: string | null; + 'metadata'?: Array; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Name of the branch where the reverted version should be committed Note: If no branch_name is specified, then the commit_branch_name will be considered. */ - 'order'?: string | null; + 'branch_name'?: string; + /** + * Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL] + */ + 'revert_policy'?: RevertCommitRequestRevertPolicyEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11674,6 +11560,7 @@ declare class SearchSchedulesRequestSortOptions { }[]; constructor(); } +type RevertCommitRequestRevertPolicyEnum = "ALL_OR_NONE" | "PARTIAL"; /** * ThoughtSpot Public REST API @@ -11686,26 +11573,27 @@ declare class SearchSchedulesRequestSortOptions { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchSchedulesRequest { +declare class RevertedMetadata { /** - * Metadata objects associated with the scheduled jobs. + * Name of the file deployed */ - 'metadata'?: Array; + 'file_name': string; /** - * The starting record number from where the records should be included. + * Name of the metadata object */ - 'record_offset'?: number; + 'metadata_name': string; /** - * The number of records that should be included. + * Type of the metadata object */ - 'record_size'?: number; - 'sort_options'?: SearchSchedulesRequestSortOptions; - 'history_runs_options'?: SearchSchedulesRequestHistoryRunsOptions; + 'metadata_type': string; /** - * unique ID or name of the Schedule + * Indicates the status of deployment for the file */ - 'schedule_identifiers'?: Array; + 'status_code': string; + /** + * Any error or warning with the deployment + */ + 'status_message': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11733,19 +11621,34 @@ declare class SearchSchedulesRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchTagsRequest { + +declare class RevertResponse { + 'committer'?: CommiterType; + 'author'?: AuthorType; /** - * Name or Id of the tag. + * Comments associated with the commit */ - 'tag_identifier'?: string; + 'comment'?: string | null; /** - * A pattern to match case-insensitive name of the Tag object. + * Time at which the changes were committed. */ - 'name_pattern'?: string; + 'commit_time'?: string | null; /** - * Color of the tag. + * SHA id associated with the commit */ - 'color'?: string; + 'commit_id'?: string | null; + /** + * Branch where changes were committed + */ + 'branch'?: string | null; + /** + * Files that were pushed as part of this commit + */ + 'committed_files'?: Array | null; + /** + * Metadata of reverted file of this commit + */ + 'reverted_metadata'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11773,18 +11676,9 @@ declare class SearchTagsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options to filter group details. -*/ -declare class SearchUserGroupsRequestSortOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: SearchUserGroupsRequestSortOptionsFieldNameEnum | null; - /** - * Sort order : ASC(Ascending) or DESC(Descending). - */ - 'order'?: SearchUserGroupsRequestSortOptionsOrderEnum | null; +declare class RevokeTokenRequest { + 'user_identifier'?: string; + 'token'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11800,8 +11694,6 @@ declare class SearchUserGroupsRequestSortOptions { }[]; constructor(); } -type SearchUserGroupsRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SearchUserGroupsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -11814,73 +11706,9 @@ type SearchUserGroupsRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchUserGroupsRequest { - /** - * GUID of Liveboards that are assigned as default Liveboards to the users in the group. - */ - 'default_liveboard_identifiers'?: Array; - /** - * Description of the group - */ - 'description'?: string; - /** - * Display name of the group - */ - 'display_name'?: string; - /** - * A pattern to match case-insensitive name of the Group object. - */ - 'name_pattern'?: string; - /** - * GUID or name of the group - */ - 'group_identifier'?: string; - /** - * ID or name of the Org to which the group belongs - */ - 'org_identifiers'?: Array; - /** - * Privileges assigned to the group. - */ - 'privileges'?: Array; - /** - * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. - */ - 'sub_group_identifiers'?: Array; - /** - * Group type. - */ - 'type'?: SearchUserGroupsRequestTypeEnum; - /** - * GUID or name of the users assigned to the group. - */ - 'user_identifiers'?: Array; - /** - * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. - */ - 'visibility'?: SearchUserGroupsRequestVisibilityEnum; - /** - * Filter groups with a list of Roles assigned to a group - */ - 'role_identifiers'?: Array; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records that should be included. - */ - 'record_size'?: number; - 'sort_options'?: SearchUserGroupsRequestSortOptions; - /** - *
Version: 10.10.0.cl or later
Define Parameter to consider if the users should be included in group search response. - */ - 'include_users'?: boolean | null; - /** - *
Version: 10.10.0.cl or later
Define Parameter to consider if the sub groups should be included in group search response. - */ - 'include_sub_groups'?: boolean | null; +declare class RiseGQLArgWrapper { + 'name': string; + 'type': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11896,9 +11724,6 @@ declare class SearchUserGroupsRequest { }[]; constructor(); } -type SearchUserGroupsRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchUserGroupsRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -11911,18 +11736,45 @@ type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ +declare class RiseSetter { + 'field': string; + 'path': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** -* Sort options. -*/ -declare class SearchUsersRequestSortOptions { + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class Role { /** - * Name of the field to apply the sort on. + * id of the role */ - 'field_name'?: SearchUsersRequestSortOptionsFieldNameEnum | null; + 'id'?: string | null; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * name of the role */ - 'order'?: SearchUsersRequestSortOptionsOrderEnum | null; + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11938,8 +11790,6 @@ declare class SearchUsersRequestSortOptions { }[]; constructor(); } -type SearchUsersRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SearchUsersRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -11953,84 +11803,75 @@ type SearchUsersRequestSortOptionsOrderEnum = "ASC" | "DESC"; * Do not edit the class manually. */ -declare class SearchUsersRequest { +declare class RoleResponse { /** - * GUID / name of the user to search + * Unique Id of the role. */ - 'user_identifier'?: string; + 'id': string; /** - * A unique display name string for the user account, usually their first and last name + * Name of the role */ - 'display_name'?: string; + 'name': string; /** - * A pattern to match case-insensitive name of the User object. + * Description of the role */ - 'name_pattern'?: string; + 'description': string; /** - * Visibility of the user + * number of groups assigned with this role */ - 'visibility'?: SearchUsersRequestVisibilityEnum; + 'groups_assigned_count'?: number | null; /** - * Email of the user account + * Orgs in which role exists. */ - 'email'?: string; + 'orgs'?: Array | null; /** - * GUID or name of the group to which the user belongs + * Details of groups assigned with this role */ - 'group_identifiers'?: Array; + 'groups'?: Array | null; /** - * Privileges assigned to the user + * Privileges granted to the role. */ - 'privileges'?: Array; + 'privileges': Array; /** - * Type of the account + * Permission details of the Role */ - 'account_type'?: SearchUsersRequestAccountTypeEnum; + 'permission'?: RoleResponsePermissionEnum | null; /** - * Current status of the user account. + * Unique identifier of author of the role. */ - 'account_status'?: SearchUsersRequestAccountStatusEnum; + 'author_id'?: string | null; /** - * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + * Unique identifier of modifier of the role. */ - 'notify_on_share'?: boolean | null; + 'modifier_id'?: string | null; /** - * The user preference for revisiting the onboarding experience + * Creation time of the role in milliseconds. */ - 'show_onboarding_experience'?: boolean | null; + 'creation_time_in_millis'?: any | null; /** - * Indicates if the user has completed the onboarding walkthrough + * Last modified time of the role in milliseconds. */ - 'onboarding_experience_completed'?: boolean | null; + 'modification_time_in_millis'?: any | null; /** - * IDs or names of the Orgs to which the user belongs + * Indicates whether the role is deleted. */ - 'org_identifiers'?: Array; + 'deleted'?: boolean | null; /** - * Unique ID or name of the user\'s home Liveboard. - */ - 'home_liveboard_identifier'?: string; - /** - * Metadata objects which are assigned as favorites of the user. - */ - 'favorite_metadata'?: Array; - /** - * The starting record number from where the records should be included. + * Indicates whether the role is deprecated. */ - 'record_offset'?: number; + 'deprecated'?: boolean | null; /** - * The number of records that should be included. + * Indicates whether the role is external. */ - 'record_size'?: number; - 'sort_options'?: SearchUsersRequestSortOptions; + 'external'?: boolean | null; /** - * Filters by the role assigned to the user. + * Indicates whether the role is hidden. */ - 'role_identifiers'?: Array; + 'hidden'?: boolean | null; /** - * Indicates if the user\'s favorite objects should be displayed. + * Indicates whether the role is shared via connection */ - 'include_favorite_metadata'?: boolean | null; + 'shared_via_connection'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12046,10 +11887,8 @@ declare class SearchUsersRequest { }[]; constructor(); } -type SearchUsersRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type SearchUsersRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchUsersRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type RoleResponsePrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MANAGE_VARIABLES" | "CAN_MODIFY_FOLDERS" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -12063,21 +11902,13 @@ type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | " * Do not edit the class manually. */ /** -* Input for variable details in search +* List of runtime parameters need to set during the session. */ -declare class VariableDetailInput { - /** - * Unique ID or name of the variable - */ - 'identifier'?: string | null; - /** - * Type of variable - */ - 'type'?: VariableDetailInputTypeEnum | null; +declare class RuntimeFilter { /** - * A pattern to match case-insensitive name of the variable. User % for a wildcard match + * Runtime filter parameter type in JWT. */ - 'name_pattern'?: string | null; + 'runtime_filter'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12093,7 +11924,6 @@ declare class VariableDetailInput { }[]; constructor(); } -type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL"; /** * ThoughtSpot Public REST API @@ -12106,24 +11936,14 @@ type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CO * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchVariablesRequest { - /** - * Variable details - */ - 'variable_details'?: Array; - /** - * The starting record number from where the records should be included - */ - 'record_offset'?: number; - /** - * The number of records that should be included - */ - 'record_size'?: number; +/** +* List of runtime parameters need to set during the session. +*/ +declare class RuntimeParamOverride { /** - * Format in which we want the output + * Runtime param override type in JWT. */ - 'output_format'?: SearchVariablesRequestOutputFormatEnum; + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12139,7 +11959,6 @@ declare class SearchVariablesRequest { }[]; constructor(); } -type SearchVariablesRequestOutputFormatEnum = "METADATA_ONLY" | "METADATA_AND_VALUES" | "EDITABLE_METADATA_AND_VALUES"; /** * ThoughtSpot Public REST API @@ -12152,15 +11971,14 @@ type SearchVariablesRequestOutputFormatEnum = "METADATA_ONLY" | "METADATA_AND_VA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SendMessageRequest { - /** - * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. - */ - 'metadata_identifier': string; +/** +* List of runtime parameters need to set during the session. +*/ +declare class RuntimeSort { /** - * A message string with the follow-up question to continue the conversation. + * Runtime sort parameter type in JWT. */ - 'message': string; + 'runtime_sort'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12188,15 +12006,19 @@ declare class SendMessageRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ShareMetadataTypeInput { +declare class ScheduleHistoryRunsOptionsInput { /** - * Type of metadata. Type of metadata. 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. + * Indicates whether to fetch history runs for the scheduled notification. */ - 'type'?: ShareMetadataTypeInputTypeEnum | null; + 'include_history_runs'?: boolean | null; /** - * Unique ID or name of the metadata object. + * Indicates the max number of records that can be fetched as past runs of any scheduled job. */ - 'identifier': string; + 'record_size'?: number | null; + /** + * Indicates the starting record number from where history runs records should be fetched. + */ + 'record_offset'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12212,7 +12034,6 @@ declare class ShareMetadataTypeInput { }[]; constructor(); } -type ShareMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -12225,13 +12046,46 @@ type ShareMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SharePermissionsInput { - 'principal': PrincipalsInput; +/** +* Options for PDF export. +*/ +declare class SchedulesPdfOptionsInput { /** - * Type of access to the shared object + * Indicates whether to include complete Liveboard. */ - 'share_mode': SharePermissionsInputShareModeEnum; + 'complete_liveboard'?: boolean | null; + /** + * Indicates whether to include cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page + */ + 'include_page_number'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: SchedulesPdfOptionsInputPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12247,7 +12101,7 @@ declare class SharePermissionsInput { }[]; constructor(); } -type SharePermissionsInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; +type SchedulesPdfOptionsInputPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -12260,48 +12114,19 @@ type SharePermissionsInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ShareMetadataRequest { - /** - * Type of metadata. Required if identifier in metadata_identifies is a name. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN 5. Connection - */ - 'metadata_type'?: ShareMetadataRequestMetadataTypeEnum; - /** - * Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type - */ - 'metadata_identifiers'?: Array; - /** - * Metadata details for sharing objects. - */ - 'metadata'?: Array; - /** - * Permission details for sharing the objects. - */ - 'permissions': Array; - /** - * Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard. - */ - 'visualization_identifiers'?: Array; - /** - * Email IDs to which notifications will be sent. - */ - 'emails'?: Array; - /** - * Message to be included in notification. - */ - 'message': string; +declare class Scope { /** - * Sends object URLs in the customized format in email notifications. + * Object access scope type. */ - 'enable_custom_url'?: boolean | null; + 'access_type': string; /** - * Flag to notify user when any object is shared. + * Unique identifier of the metadata. */ - 'notify_on_share'?: boolean | null; + 'org_id'?: number | null; /** - * Flag to make the object discoverable. + * Unique identifier of the Org. */ - 'has_lenient_discoverability'?: boolean | null; + 'metadata_id'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12317,7 +12142,6 @@ declare class ShareMetadataRequest { }[]; constructor(); } -type ShareMetadataRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -12330,15 +12154,18 @@ type ShareMetadataRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SingleAnswerRequest { +/** +* Sort options. +*/ +declare class SearchCalendarsRequestSortOptions { /** - * A natural language query string to generate the Answer. + * Name of the field to apply the sort on. */ - 'query': string; + 'field_name'?: SearchCalendarsRequestSortOptionsFieldNameEnum | null; /** - * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'metadata_identifier': string; + 'order'?: SearchCalendarsRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12354,6 +12181,8 @@ declare class SingleAnswerRequest { }[]; constructor(); } +type SearchCalendarsRequestSortOptionsFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SearchCalendarsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -12366,15 +12195,25 @@ declare class SingleAnswerRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SortOption { + +declare class SearchCalendarsRequest { /** - * Name of the field to apply the sort on. + * Unique ID or name of the connection. */ - 'field_name'?: SortOptionFieldNameEnum | null; + 'connection_identifier'?: string; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Pattern to match for calendar names (use \'%\' for wildcard match). */ - 'order'?: SortOptionOrderEnum | null; + 'name_pattern'?: string; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchCalendarsRequestSortOptions; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12390,8 +12229,6 @@ declare class SortOption { }[]; constructor(); } -type SortOptionFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SortOptionOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -12404,15 +12241,27 @@ type SortOptionOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SortOptionInput { +declare class SearchCommitsRequest { /** - * Name of the field to apply the sort on. + * Unique ID or name of the metadata. */ - 'field_name'?: SortOptionInputFieldNameEnum | null; + 'metadata_identifier': string; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Type of metadata. */ - 'order'?: SortOptionInputOrderEnum | null; + 'metadata_type'?: SearchCommitsRequestMetadataTypeEnum; + /** + * Name of the branch from which commit history needs to be displayed. Note: If no branch_name is specified, then commits will be returned for the default branch for this configuration. + */ + 'branch_name'?: string; + /** + * Record offset point in the commit history to display the response. Note: If no record offset is specified, the beginning of the record will be considered. + */ + 'record_offset'?: number; + /** + * Number of history records from record offset point to be displayed in the response. Note: If no record size is specified, then all the records will be considered. + */ + 'record_size'?: number; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12428,8 +12277,7 @@ declare class SortOptionInput { }[]; constructor(); } -type SortOptionInputFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; -type SortOptionInputOrderEnum = "ASC" | "DESC"; +type SearchCommitsRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CUSTOM_ACTION"; /** * ThoughtSpot Public REST API @@ -12442,18 +12290,16 @@ type SortOptionInputOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options. -*/ -declare class SortOptions { + +declare class SearchCommunicationChannelPreferencesRequest { /** - * Name of the field to apply the sort on. + * Event types to search for in cluster-level preferences. */ - 'field_name'?: SortOptionsFieldNameEnum | null; + 'cluster_preferences'?: Array; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Org-specific search criteria. */ - 'order'?: SortOptionsOrderEnum | null; + 'org_preferences'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12469,8 +12315,7 @@ declare class SortOptions { }[]; constructor(); } -type SortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SortOptionsOrderEnum = "ASC" | "DESC"; +type SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -12483,18 +12328,11 @@ type SortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options. -*/ -declare class SortingOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: string | null; +declare class SearchConfigRequest { /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later */ - 'order'?: string | null; + 'org_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12523,21 +12361,17 @@ declare class SortingOptions { * Do not edit the class manually. */ /** -* Response format associated with fetch SQL query api +* Sort options. */ -declare class SqlQuery { - /** - * Unique identifier of the metadata. - */ - 'metadata_id': string; +declare class SearchConnectionRequestSortOptions { /** - * Name of the metadata. + * Name of the field to apply the sort on. */ - 'metadata_name': string; + 'field_name'?: SearchConnectionRequestSortOptionsFieldNameEnum | null; /** - * SQL query of a metadata object. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'sql_query': string; + 'order'?: SearchConnectionRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12553,6 +12387,8 @@ declare class SqlQuery { }[]; constructor(); } +type SearchConnectionRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; +type SearchConnectionRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -12566,23 +12402,48 @@ declare class SqlQuery { * Do not edit the class manually. */ -declare class SqlQueryResponse { +declare class SearchConnectionRequest { /** - * Unique identifier of the metadata. + * List of connections and name pattern */ - 'metadata_id': string; + 'connections'?: Array; /** - * Name of the metadata. + * Array of types of data warehouse defined for the connection. */ - 'metadata_name': string; + 'data_warehouse_types'?: Array; /** - * Type of the metadata. + * The starting record number from where the records should be included. */ - 'metadata_type': SqlQueryResponseMetadataTypeEnum; + 'record_offset'?: number; /** - * SQL query details of metadata objects. + * The number of records that should be included. */ - 'sql_queries': Array; + 'record_size'?: number; + /** + * Unique ID or name of tags. + */ + 'tag_identifiers'?: Array; + /** + * Data warehouse object type. + */ + 'data_warehouse_object_type'?: SearchConnectionRequestDataWarehouseObjectTypeEnum; + 'sort_options'?: SearchConnectionRequestSortOptions; + /** + * Indicates whether to include complete details of the connection objects. + */ + 'include_details'?: boolean | null; + /** + * Configuration values. If empty we are fetching configuration from datasource based on given connection id. If required you can provide config details to fetch specific details. Example input: {}, {\"warehouse\":\"SMALL_WH\",\"database\":\"DEVELOPMENT\"}. This is only applicable when data_warehouse_object_type is selected. + */ + 'configuration'?: any; + /** + * List of authentication types to fetch data_ware_house_objects from external Data warehouse. This is only applicable when data_warehouse_object_type is selected. + */ + 'authentication_type'?: SearchConnectionRequestAuthenticationTypeEnum; + /** + *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. + */ + 'show_resolved_parameters'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12598,7 +12459,9 @@ declare class SqlQueryResponse { }[]; constructor(); } -type SqlQueryResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; +type SearchConnectionRequestDataWarehouseTypesEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; +type SearchConnectionRequestDataWarehouseObjectTypeEnum = "DATABASE" | "SCHEMA" | "TABLE" | "COLUMN"; +type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "IAM" | "EXTOAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "PERSONAL_ACCESS_TOKEN" | "KEY_PAIR" | "OAUTH_WITH_PKCE" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PEZ" | "OAUTH_CLIENT_CREDENTIALS"; /** * ThoughtSpot Public REST API @@ -12611,128 +12474,29 @@ type SqlQueryResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SystemConfig { - 'onboarding_content_url'?: string | null; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class SystemInfo { - /** - * The unique identifier of the object - */ - 'id'?: string | null; - /** - * Name of the cluster. - */ - 'name'?: string | null; - /** - * The release version of the cluster. - */ - 'release_version'?: string | null; - /** - * The timezone of the cluster. - */ - 'time_zone'?: string | null; - /** - * The default locale of the cluster. - */ - 'locale'?: string | null; - /** - * The default date format representation of the cluster. - */ - 'date_format'?: string | null; - /** - * The API version of the cluster. - */ - 'api_version'?: string | null; - /** - * The deployment type of the cluster. - */ - 'type'?: string | null; - /** - * The deployed environment of the cluster. - */ - 'environment'?: string | null; - /** - * The license applied to the cluster. - */ - 'license'?: string | null; - /** - * The default date time format representation of the cluster. - */ - 'date_time_format'?: string | null; - /** - * The default time format representation of the cluster. - */ - 'time_format'?: string | null; - /** - * The unique identifier of system user. - */ - 'system_user_id'?: string | null; - /** - * The unique identifier of super user. - */ - 'super_user_id'?: string | null; - /** - * The unique identifier of hidden object. - */ - 'hidden_object_id'?: string | null; - /** - * The unique identifier of system group. - */ - 'system_group_id'?: string | null; - /** - * The unique identifier of tsadmin user. - */ - 'tsadmin_user_id'?: string | null; - /** - * The unique identifier of admin group. - */ - 'admin_group_id'?: string | null; +declare class SearchConnectionResponse { /** - * The unique identifier of all tables connection. + * Unique ID of the connection. */ - 'all_tables_connection_id'?: string | null; + 'id': string; /** - * The unique identifier of ALL group. + * Name of the connection. */ - 'all_user_group_id'?: string | null; + 'name': string; /** - * The supported accept language by the cluster. + * Description of the connection. */ - 'accept_language'?: string | null; + 'description'?: string | null; /** - * The count of users of ALL group. + * Type of data warehouse. */ - 'all_user_group_member_user_count'?: number | null; + 'data_warehouse_type': SearchConnectionResponseDataWarehouseTypeEnum; + 'data_warehouse_objects'?: DataWarehouseObjects; /** - * The version number of logical model of the cluster. + * Details of the connection. */ - 'logical_model_version'?: number | null; + 'details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12748,6 +12512,7 @@ declare class SystemInfo { }[]; constructor(); } +type SearchConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -12760,8 +12525,14 @@ declare class SystemInfo { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SystemOverrideInfo { - 'config_override_info'?: any | null; +/** +* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. +*/ +declare class SearchCustomActionsRequestDefaultActionConfig { + /** + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + */ + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12789,19 +12560,33 @@ declare class SystemOverrideInfo { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Tag { - 'name': string; - 'id': string; - 'color'?: string | null; - 'deleted'?: boolean | null; - 'hidden'?: boolean | null; - 'external'?: boolean | null; - 'deprecated'?: boolean | null; - 'creation_time_in_millis'?: number | null; - 'modification_time_in_millis'?: number | null; - 'author_id'?: string | null; - 'modifier_id'?: string | null; - 'owner_id'?: string | null; + +declare class SearchCustomActionsRequest { + /** + * Name or ID of the custom action. + */ + 'custom_action_identifier'?: string; + /** + * A pattern to match case-insensitive name of the custom-action object. + */ + 'name_pattern'?: string; + 'default_action_config'?: SearchCustomActionsRequestDefaultActionConfig; + /** + * When set to true, returns the associated groups for a custom action. + */ + 'include_group_associations'?: boolean | null; + /** + * When set to true, returns the associated metadata for a custom action. + */ + 'include_metadata_associations'?: boolean | null; + /** + * Search with a given metadata identifier. + */ + 'metadata'?: Array; + /** + * Filter the action objects based on type + */ + 'type'?: SearchCustomActionsRequestTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12817,6 +12602,7 @@ declare class Tag { }[]; constructor(); } +type SearchCustomActionsRequestTypeEnum = "CALLBACK" | "URL"; /** * ThoughtSpot Public REST API @@ -12829,102 +12615,39 @@ declare class Tag { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Email customization configuration properties -*/ -declare class TemplatePropertiesInputCreate { +declare class SearchDataRequest { /** - * Background color for call-to-action button in hex format - */ - 'cta_button_bg_color'?: string | null; - /** - * Text color for call-to-action button in hex format - */ - 'cta_text_font_color'?: string | null; - /** - * Primary background color in hex format - */ - 'primary_bg_color'?: string | null; - /** - * Home page URL (HTTP/HTTPS only) - */ - 'home_url'?: string | null; - /** - * Logo image URL (HTTP/HTTPS only) - */ - 'logo_url'?: string | null; - /** - * Font family for email content (e.g., Arial, sans-serif) - */ - 'font_family'?: string | null; - /** - * Product name to display - */ - 'product_name'?: string | null; - /** - * Footer address text - */ - 'footer_address'?: string | null; - /** - * Footer phone number - */ - 'footer_phone'?: string | null; - /** - * Replacement value for Liveboard - */ - 'replacement_value_for_liveboard'?: string | null; - /** - * Replacement value for Answer - */ - 'replacement_value_for_answer'?: string | null; - /** - * Replacement value for SpotIQ - */ - 'replacement_value_for_spot_iq'?: string | null; - /** - * Whether to hide footer address - */ - 'hide_footer_address'?: boolean | null; - /** - * Whether to hide footer phone number - */ - 'hide_footer_phone'?: boolean | null; - /** - * Whether to hide manage notification link - */ - 'hide_manage_notification'?: boolean | null; - /** - * Whether to hide mobile app nudge + * Query string with search tokens. For example, [Sales][Region]. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api) */ - 'hide_mobile_app_nudge'?: boolean | null; + 'query_string': string; /** - * Whether to hide privacy policy link + * GUID of the data source object, such as a Worksheet, View, or Table. You can find the GUID of a data object from the UI or via API. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_query) for more details. */ - 'hide_privacy_policy'?: boolean | null; + 'logical_table_identifier': string; /** - * Whether to hide product name + * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. */ - 'hide_product_name'?: boolean | null; + 'data_format'?: SearchDataRequestDataFormatEnum; /** - * Whether to hide ThoughtSpot vocabulary definitions + * The starting record number from where the records should be included. */ - 'hide_ts_vocabulary_definitions'?: boolean | null; + 'record_offset'?: number; /** - * Whether to hide notification status + * The number of records to include in a batch. */ - 'hide_notification_status'?: boolean | null; + 'record_size'?: number; /** - * Whether to hide error message + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). */ - 'hide_error_message'?: boolean | null; + 'runtime_filter'?: any; /** - * Whether to hide unsubscribe link + * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). */ - 'hide_unsubscribe_link'?: boolean | null; + 'runtime_sort'?: any; /** - * Whether to hide modify alert + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). */ - 'hide_modify_alert'?: boolean | null; + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12940,6 +12663,7 @@ declare class TemplatePropertiesInputCreate { }[]; constructor(); } +type SearchDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -12953,74 +12677,14 @@ declare class TemplatePropertiesInputCreate { * Do not edit the class manually. */ -declare class Token { - /** - * Bearer auth token. - */ - 'token': string; - /** - * Token creation time in milliseconds. - */ - 'creation_time_in_millis': number; - /** - * Token expiration time in milliseconds. - */ - 'expiration_time_in_millis': number; - 'scope': Scope; - /** - * Username to whom the token is issued. - */ - 'valid_for_user_id': string; - /** - * Unique identifier of the user to whom the token is issued. - */ - 'valid_for_username': string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} - /** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -declare class TokenValidationResponse { - /** - * Token creation time in milliseconds. - */ - 'creation_time_in_millis': number; - /** - * Token expiration time in milliseconds. - */ - 'expiration_time_in_millis': number; - 'scope': Scope; - /** - * Username to whom the token is issued. - */ - 'valid_for_user_id': string; +* Response format associated with the search data API. +*/ +declare class SearchDataResponse { /** - * Type of token. + * Data content of metadata objects */ - 'token_type': string; + 'contents': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13048,27 +12712,11 @@ declare class TokenValidationResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UnparameterizeMetadataRequest { - /** - * Type of metadata object to unparameterize. - */ - 'metadata_type'?: UnparameterizeMetadataRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object to unparameterize. - */ - 'metadata_identifier': string; - /** - * Type of field in the metadata to unparameterize. - */ - 'field_type': UnparameterizeMetadataRequestFieldTypeEnum; - /** - * Name of the field which needs to be unparameterized. - */ - 'field_name': string; +declare class SearchEmailCustomizationRequest { /** - * The value to use in place of the variable for the field + * Unique ID or name of org Version: 10.12.0.cl or later */ - 'value': string; + 'org_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13084,8 +12732,6 @@ declare class UnparameterizeMetadataRequest { }[]; constructor(); } -type UnparameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; -type UnparameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; /** * ThoughtSpot Public REST API @@ -13098,24 +12744,18 @@ type UnparameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROP * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UnpublishMetadataRequest { - /** - * Force unpublishes the object. This will break all the dependent objects in the unpublished orgs. - */ - 'force'?: boolean | null; - /** - * Should we unpublish all the dependencies for the objects specified. The dependencies will be unpublished if no other published object is using it. - */ - 'include_dependencies': boolean; +/** +* Options to sort the API response by objects set as favorites for the logged-in user or the users specified in the API request. +*/ +declare class SearchMetadataRequestFavoriteObjectOptions { /** - * Metadata objects. + * Includes objects marked as favorite for the specified users. */ - 'metadata': Array; + 'include'?: boolean | null; /** - * Unique ID or name of orgs. + * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. */ - 'org_identifiers': Array; + 'user_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13144,25 +12784,17 @@ declare class UnpublishMetadataRequest { * Do not edit the class manually. */ /** -* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. +* Sort options to filter metadata details. */ -declare class UpdateCalendarRequestTableReference { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Name of the database. - */ - 'database_name'?: string | null; +declare class SearchMetadataRequestSortOptions { /** - * Name of the schema. + * Name of the field to apply the sort on. */ - 'schema_name'?: string | null; + 'field_name'?: SearchMetadataRequestSortOptionsFieldNameEnum | null; /** - * Name of the table. Table names may be case-sensitive depending on the database system. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'table_name': string; + 'order'?: SearchMetadataRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13178,6 +12810,8 @@ declare class UpdateCalendarRequestTableReference { }[]; constructor(); } +type SearchMetadataRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; +type SearchMetadataRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13191,40 +12825,101 @@ declare class UpdateCalendarRequestTableReference { * Do not edit the class manually. */ -declare class UpdateCalendarRequest { +declare class SearchMetadataRequest { /** - * Type of update operation. + * Metadata objects such as Liveboards, Answers, and Worksheets. */ - 'update_method'?: UpdateCalendarRequestUpdateMethodEnum; - 'table_reference': UpdateCalendarRequestTableReference; + 'metadata'?: Array; /** - * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + * Object permission details to search by. */ - 'start_date'?: string; + 'permissions'?: Array; /** - * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + * GUID or name of user who created the metadata object. */ - 'end_date'?: string; + 'created_by_user_identifiers'?: Array; /** - * Type of the calendar. + * Version of the dependent table of the metadata objects like Worksheets. */ - 'calendar_type'?: UpdateCalendarRequestCalendarTypeEnum; + 'dependent_object_version'?: SearchMetadataRequestDependentObjectVersionEnum; /** - * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). + * List of metadata objects to exclude from search. */ - 'month_offset'?: UpdateCalendarRequestMonthOffsetEnum; + 'exclude_objects'?: Array; + 'favorite_object_options'?: SearchMetadataRequestFavoriteObjectOptions; /** - * Specify the starting day of the week + * Includes system-generated metadata objects. */ - 'start_day_of_week'?: UpdateCalendarRequestStartDayOfWeekEnum; + 'include_auto_created_objects'?: boolean | null; /** - * Prefix to add before the quarter. + * Includes dependents of the metadata object specified in the API request. For example, a worksheet can consist of dependent objects such as Liveboards or Answers. */ - 'quarter_name_prefix'?: string; + 'include_dependent_objects'?: boolean | null; /** - * Prefix to add before the year. + * The maximum number of dependents to include per metadata object. */ - 'year_name_prefix'?: string; + 'dependent_objects_record_size'?: number; + /** + * Includes complete details of the metadata objects. + */ + 'include_details'?: boolean | null; + /** + * Includes headers of the metadata objects. + */ + 'include_headers'?: boolean | null; + /** + * Includes details of the hidden objects, such as a column in a worksheet or a table. + */ + 'include_hidden_objects'?: boolean | null; + /** + * Includes objects with incomplete metadata. + */ + 'include_incomplete_objects'?: boolean | null; + /** + * Includes visualization headers of the specified Liveboard object. + */ + 'include_visualization_headers'?: boolean | null; + /** + * If search assistance lessons are configured on a worksheet, the API returns the search assist data for Worksheet objects. + */ + 'include_worksheet_search_assist_data'?: boolean | null; + /** + * Includes ID or names of the users who modified the metadata object. + */ + 'modified_by_user_identifiers'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. It is recommended to use a smaller `record_size` when fetching dependent objects or any of the additional metadata detail options. + */ + 'record_size'?: number; + 'sort_options'?: SearchMetadataRequestSortOptions; + /** + * Tags to filter metadata objects by + */ + 'tag_identifiers'?: Array; + /** + * Indicates whether to include stats of the metadata objects. + */ + 'include_stats'?: boolean | null; + /** + *
Version: 10.7.0.cl or later
Boolean to indicate whether to include discoverable metadata objects. + */ + 'include_discoverable_objects'?: boolean | null; + /** + *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. + */ + 'show_resolved_parameters'?: boolean | null; + /** + * Indicates the model version of Liveboard to be attached in metadata detail. + */ + 'liveboard_response_version'?: SearchMetadataRequestLiveboardResponseVersionEnum; + /** + *
Version: 10.11.0.cl or later
If only published objects should be returned + */ + 'include_only_published_objects'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13240,10 +12935,8 @@ declare class UpdateCalendarRequest { }[]; constructor(); } -type UpdateCalendarRequestUpdateMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; -type UpdateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; -type UpdateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; -type UpdateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; +type SearchMetadataRequestDependentObjectVersionEnum = "V1" | "V2"; +type SearchMetadataRequestLiveboardResponseVersionEnum = "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -13256,24 +12949,27 @@ type UpdateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateColumnSecurityRulesRequest { +declare class SearchOrgsRequest { /** - * GUID or name of the table for which we want to create column security rules + * ID or name of the Org */ - 'identifier'?: string; + 'org_identifier'?: string; /** - * The object ID of the table + * Description of the Org */ - 'obj_identifier'?: string; + 'description'?: string; /** - * If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed + * Visibility of the Org */ - 'clear_csr'?: boolean | null; + 'visibility'?: SearchOrgsRequestVisibilityEnum; /** - * Array where each object defines the security rule for a specific column + * Status of the Org */ - 'column_security_rules': Array; + 'status'?: SearchOrgsRequestStatusEnum; + /** + * GUIDs or names of the users for which you want to retrieve the Orgs data + */ + 'user_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13289,6 +12985,8 @@ declare class UpdateColumnSecurityRulesRequest { }[]; constructor(); } +type SearchOrgsRequestVisibilityEnum = "SHOW" | "HIDDEN"; +type SearchOrgsRequestStatusEnum = "ACTIVE" | "IN_ACTIVE"; /** * ThoughtSpot Public REST API @@ -13301,35 +12999,79 @@ declare class UpdateColumnSecurityRulesRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConfigRequest { + +/** +* Response for search role api should handle hidden privileges as well. +*/ +declare class SearchRoleResponse { /** - * Username to authenticate connection to version control system + * Unique Id of the role. */ - 'username'?: string; + 'id': string; /** - * Access token corresponding to the user to authenticate connection to version control system + * Name of the role */ - 'access_token'?: string; + 'name': string; /** - * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later + * Description of the role */ - 'org_identifier'?: string; + 'description': string; /** - * List the remote branches to configure. Example:[development, production] + * number of groups assigned with this role */ - 'branch_names'?: Array; + 'groups_assigned_count'?: number | null; /** - * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + * Orgs in which role exists. */ - 'commit_branch_name'?: string; + 'orgs'?: Array | null; /** - * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + * Details of groups assigned with this role */ - 'enable_guid_mapping'?: boolean | null; + 'groups'?: Array | null; /** - * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Version: 9.7.0.cl or later + * Privileges granted to the role. */ - 'configuration_branch_name'?: string; + 'privileges': Array; + /** + * Permission details of the Role + */ + 'permission'?: SearchRoleResponsePermissionEnum | null; + /** + * Unique identifier of author of the role. + */ + 'author_id'?: string | null; + /** + * Unique identifier of modifier of the role. + */ + 'modifier_id'?: string | null; + /** + * Creation time of the role in milliseconds. + */ + 'creation_time_in_millis'?: any | null; + /** + * Last modified time of the role in milliseconds. + */ + 'modification_time_in_millis'?: any | null; + /** + * Indicates whether the role is deleted. + */ + 'deleted'?: boolean | null; + /** + * Indicates whether the role is deprecated. + */ + 'deprecated'?: boolean | null; + /** + * Indicates whether the role is external. + */ + 'external'?: boolean | null; + /** + * Indicates whether the role is hidden. + */ + 'hidden'?: boolean | null; + /** + * Indicates whether the role is shared via connection + */ + 'shared_via_connection'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13345,6 +13087,8 @@ declare class UpdateConfigRequest { }[]; constructor(); } +type SearchRoleResponsePrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_VIEW_FOLDERS" | "CAN_MODIDY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -13357,43 +13101,39 @@ declare class UpdateConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConnectionConfigurationRequest { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; +declare class SearchRolesRequest { /** - * Name of the configuration to update. + * unique ID or name of the Roles */ - 'name'?: string; + 'role_identifiers'?: Array; /** - * Description of the configuration. + * Unique Id or name of the Organisation */ - 'description'?: string; + 'org_identifiers'?: Array; /** - * Type of authentication. + * Unique Id or name of the User Group */ - 'authentication_type'?: UpdateConnectionConfigurationRequestAuthenticationTypeEnum; + 'group_identifiers'?: Array; /** - * Configuration properties in JSON. + * Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. */ - 'configuration'?: any; + 'privileges'?: Array; /** - * Type of policy. + * Indicates whether the Role is deprecated. */ - 'policy_type'?: UpdateConnectionConfigurationRequestPolicyTypeEnum; + 'deprecated'?: boolean | null; /** - * Unique ID or name of the User and User Groups. + * Indicates whether the Role is external */ - 'policy_principals'?: Array; + 'external'?: boolean | null; /** - * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + * Indicates whether the Role is shared via connection */ - 'policy_processes'?: Array; + 'shared_via_connection'?: boolean | null; /** - * Indicates whether the configuration enable/disable. + * Permission details of the Role */ - 'disable'?: boolean | null; + 'permissions'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13409,9 +13149,8 @@ declare class UpdateConnectionConfigurationRequest { }[]; constructor(); } -type UpdateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "EXTOAUTH" | "KEY_PAIR" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PKCE" | "PERSONAL_ACCESS_TOKEN"; -type UpdateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; -type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; +type SearchRolesRequestPrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_VIEW_FOLDERS" | "CAN_MODIDY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -13424,27 +13163,22 @@ type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConnectionRequest { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Updated name of the connection. - */ - 'name'?: string; +/** +* Options while fetching history runs for the schedule. +*/ +declare class SearchSchedulesRequestHistoryRunsOptions { /** - * Updated description of the connection. + * Indicates whether to fetch history runs for the scheduled notification. */ - 'description'?: string; + 'include_history_runs'?: boolean | null; /** - * Configuration of the data warehouse in JSON. + * Indicates the max number of records that can be fetched as past runs of any scheduled job. */ - 'data_warehouse_config'?: any; + 'record_size'?: number | null; /** - * Indicates whether to validate the connection details. + * Indicates the starting record number from where history runs records should be fetched. */ - 'validate'?: boolean | null; + 'record_offset'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13472,23 +13206,18 @@ declare class UpdateConnectionRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConnectionV2Request { +/** +* Sort options. +*/ +declare class SearchSchedulesRequestSortOptions { /** - * Updated name of the connection. + * Name of the field to apply the sort on. */ - 'name'?: string; + 'field_name'?: string | null; /** - * Updated description of the connection. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'description'?: string; - /** - * Configuration of the data warehouse in JSON. - */ - 'data_warehouse_config'?: any; - /** - * Indicates whether to validate the connection details. - */ - 'validate'?: boolean | null; + 'order'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13517,12 +13246,25 @@ declare class UpdateConnectionV2Request { * Do not edit the class manually. */ -/** -* Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required. -*/ -declare class UpdateCustomActionRequestActionDetails { - 'CALLBACK'?: CALLBACKInput; - 'URL'?: URLInput; +declare class SearchSchedulesRequest { + /** + * Metadata objects associated with the scheduled jobs. + */ + 'metadata'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchSchedulesRequestSortOptions; + 'history_runs_options'?: SearchSchedulesRequestHistoryRunsOptions; + /** + * unique ID or name of the Schedule + */ + 'schedule_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13550,14 +13292,19 @@ declare class UpdateCustomActionRequestActionDetails { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes if the custom action available on visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class UpdateCustomActionRequestDefaultActionConfig { +declare class SearchTagsRequest { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Name or Id of the tag. */ - 'visibility'?: boolean | null; + 'tag_identifier'?: string; + /** + * A pattern to match case-insensitive name of the Tag object. + */ + 'name_pattern'?: string; + /** + * Color of the tag. + */ + 'color'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13585,26 +13332,18 @@ declare class UpdateCustomActionRequestDefaultActionConfig { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateCustomActionRequest { - 'action_details'?: UpdateCustomActionRequestActionDetails; - /** - * Metadata objects to which the custom action needs to be associated. - */ - 'associate_metadata'?: Array; - 'default_action_config'?: UpdateCustomActionRequestDefaultActionConfig; - /** - * Unique ID or name of the groups that can view and access the custom action. - */ - 'group_identifiers'?: Array; +/** +* Sort options to filter group details. +*/ +declare class SearchUserGroupsRequestSortOptions { /** - * Name of the custom action. The custom action name must be unique. + * Name of the field to apply the sort on. */ - 'name'?: string; + 'field_name'?: SearchUserGroupsRequestSortOptionsFieldNameEnum | null; /** - * Type of update operation. Default operation type is ADD + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'operation'?: UpdateCustomActionRequestOperationEnum; + 'order'?: SearchUserGroupsRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13620,7 +13359,8 @@ declare class UpdateCustomActionRequest { }[]; constructor(); } -type UpdateCustomActionRequestOperationEnum = "ADD" | "REMOVE"; +type SearchUserGroupsRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SearchUserGroupsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13634,12 +13374,72 @@ type UpdateCustomActionRequestOperationEnum = "ADD" | "REMOVE"; * Do not edit the class manually. */ -declare class UpdateEmailCustomizationRequest { - 'template_properties': CreateEmailCustomizationRequestTemplateProperties; +declare class SearchUserGroupsRequest { /** - * Unique ID or name of org + * GUID of Liveboards that are assigned as default Liveboards to the users in the group. */ - 'org_identifier'?: string; + 'default_liveboard_identifiers'?: Array; + /** + * Description of the group + */ + 'description'?: string; + /** + * Display name of the group + */ + 'display_name'?: string; + /** + * A pattern to match case-insensitive name of the Group object. + */ + 'name_pattern'?: string; + /** + * GUID or name of the group + */ + 'group_identifier'?: string; + /** + * ID or name of the Org to which the group belongs + */ + 'org_identifiers'?: Array; + /** + * Privileges assigned to the group. + */ + 'privileges'?: Array; + /** + * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + */ + 'sub_group_identifiers'?: Array; + /** + * Group type. + */ + 'type'?: SearchUserGroupsRequestTypeEnum; + /** + * GUID or name of the users assigned to the group. + */ + 'user_identifiers'?: Array; + /** + * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + */ + 'visibility'?: SearchUserGroupsRequestVisibilityEnum; + /** + * Filter groups with a list of Roles assigned to a group + */ + 'role_identifiers'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchUserGroupsRequestSortOptions; + /** + *
Version: 10.10.0.cl or later
Define Parameter to consider if the users should be included in group search response. + */ + 'include_users'?: boolean | null; + /** + *
Version: 10.10.0.cl or later
Define Parameter to consider if the sub groups should be included in group search response. + */ + 'include_sub_groups'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13655,6 +13455,9 @@ declare class UpdateEmailCustomizationRequest { }[]; constructor(); } +type SearchUserGroupsRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchUserGroupsRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -13667,16 +13470,18 @@ declare class UpdateEmailCustomizationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateMetadataHeaderRequest { +/** +* Sort options. +*/ +declare class SearchUsersRequestSortOptions { /** - * List of header objects to update. + * Name of the field to apply the sort on. */ - 'headers_update': Array; + 'field_name'?: SearchUsersRequestSortOptionsFieldNameEnum | null; /** - * Unique ID or name of the organization. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'org_identifier'?: string; + 'order'?: SearchUsersRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13692,6 +13497,8 @@ declare class UpdateMetadataHeaderRequest { }[]; constructor(); } +type SearchUsersRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SearchUsersRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13704,26 +13511,85 @@ declare class UpdateMetadataHeaderRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Input for updating object ID of a metadata object. -*/ -declare class UpdateObjIdInput { + +declare class SearchUsersRequest { /** - * GUID or name of the metadata object. + * GUID / name of the user to search */ - 'metadata_identifier'?: string | null; + 'user_identifier'?: string; /** - * Type of metadata. Required if metadata_identifier is name of the object. + * A unique display name string for the user account, usually their first and last name */ - 'type'?: UpdateObjIdInputTypeEnum | null; + 'display_name'?: string; /** - * Current object ID value. + * A pattern to match case-insensitive name of the User object. */ - 'current_obj_id'?: string | null; + 'name_pattern'?: string; /** - * New object ID value to set. + * Visibility of the user */ - 'new_obj_id': string; + 'visibility'?: SearchUsersRequestVisibilityEnum; + /** + * Email of the user account + */ + 'email'?: string; + /** + * GUID or name of the group to which the user belongs + */ + 'group_identifiers'?: Array; + /** + * Privileges assigned to the user + */ + 'privileges'?: Array; + /** + * Type of the account + */ + 'account_type'?: SearchUsersRequestAccountTypeEnum; + /** + * Current status of the user account. + */ + 'account_status'?: SearchUsersRequestAccountStatusEnum; + /** + * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for revisiting the onboarding experience + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Indicates if the user has completed the onboarding walkthrough + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * IDs or names of the Orgs to which the user belongs + */ + 'org_identifiers'?: Array; + /** + * Unique ID or name of the user\'s home Liveboard. + */ + 'home_liveboard_identifier'?: string; + /** + * Metadata objects which are assigned as favorites of the user. + */ + 'favorite_metadata'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchUsersRequestSortOptions; + /** + * Filters by the role assigned to the user. + */ + 'role_identifiers'?: Array; + /** + * Indicates if the user\'s favorite objects should be displayed. + */ + 'include_favorite_metadata'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13739,7 +13605,10 @@ declare class UpdateObjIdInput { }[]; constructor(); } -type UpdateObjIdInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; +type SearchUsersRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type SearchUsersRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchUsersRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; /** * ThoughtSpot Public REST API @@ -13752,12 +13621,26 @@ type UpdateObjIdInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateMetadataObjIdRequest { +/** +* Input for variable scope in search +*/ +declare class ValueScopeInput { /** - * List of metadata objects to update their object IDs. + * The unique name of the org */ - 'metadata': Array; + 'org_identifier'?: string | null; + /** + * Principal type + */ + 'principal_type'?: ValueScopeInputPrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * Model Identifier + */ + 'model_identifier'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13773,6 +13656,7 @@ declare class UpdateMetadataObjIdRequest { }[]; constructor(); } +type ValueScopeInputPrincipalTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -13785,27 +13669,22 @@ declare class UpdateMetadataObjIdRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateOrgRequest { - /** - * Name of the Org - */ - 'name'?: string; - /** - * Description of the Org - */ - 'description'?: string; +/** +* Input for variable details in search +*/ +declare class VariableDetailInput { /** - * Add Users to an Org + * Unique ID or name of the variable */ - 'user_identifiers'?: Array; + 'identifier'?: string | null; /** - * Add Default Groups to an Org + * Type of variable */ - 'group_identifiers'?: Array; + 'type'?: VariableDetailInputTypeEnum | null; /** - * Type of update operation. Default operation type is ADD + * A pattern to match case-insensitive name of the variable. User % for a wildcard match */ - 'operation'?: UpdateOrgRequestOperationEnum; + 'name_pattern'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13821,7 +13700,7 @@ declare class UpdateOrgRequest { }[]; constructor(); } -type UpdateOrgRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE"; /** * ThoughtSpot Public REST API @@ -13834,19 +13713,28 @@ type UpdateOrgRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateRoleRequest { + +declare class SearchVariablesRequest { /** - * Name of the Role. + * Variable details */ - 'name': string; + 'variable_details'?: Array; /** - * Description of the Role. + * Array of scope filters */ - 'description'?: string; + 'value_scope'?: Array; /** - * Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. + * The starting record number from where the records should be included */ - 'privileges'?: Array; + 'record_offset'?: number; + /** + * The number of records that should be included + */ + 'record_size'?: number; + /** + * Format in which we want the output + */ + 'response_content'?: SearchVariablesRequestResponseContentEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13862,7 +13750,7 @@ declare class UpdateRoleRequest { }[]; constructor(); } -type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "PREVIEW_THOUGHTSPOT_SAGE"; +type SearchVariablesRequestResponseContentEnum = "METADATA" | "METADATA_AND_VALUES"; /** * ThoughtSpot Public REST API @@ -13875,12 +13763,18 @@ type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Frequency of the scheduled job run. +* Sort option includes sort field and sort order. */ -declare class UpdateScheduleRequestFrequency { - 'cron_expression': CronExpressionInput; +declare class SearchWebhookConfigurationsRequestSortOptions { + /** + * Name of the field to apply the sort on. + */ + 'field_name'?: SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum | null; + /** + * Sort order: ASC (Ascending) or DESC (Descending). + */ + 'order'?: SearchWebhookConfigurationsRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13896,6 +13790,8 @@ declare class UpdateScheduleRequestFrequency { }[]; constructor(); } +type SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum = "CREATED" | "MODIFIED" | "NAME"; +type SearchWebhookConfigurationsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13908,14 +13804,29 @@ declare class UpdateScheduleRequestFrequency { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options to specify the details of a Liveboard. -*/ -declare class UpdateScheduleRequestLiveboardOptions { + +declare class SearchWebhookConfigurationsRequest { /** - * Unique ID or name of visualizations. + * Unique ID or name of the org. */ - 'visualization_identifiers': Array; + 'org_identifier'?: string; + /** + * Unique ID or name of the webhook. + */ + 'webhook_identifier'?: string; + /** + * Type of webhook event to filter by. + */ + 'event_type'?: SearchWebhookConfigurationsRequestEventTypeEnum; + /** + * The offset point, starting from where the webhooks should be included in the response. + */ + 'record_offset'?: number; + /** + * The number of webhooks that should be included in the response starting from offset position. + */ + 'record_size'?: number; + 'sort_options'?: SearchWebhookConfigurationsRequestSortOptions; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13931,6 +13842,7 @@ declare class UpdateScheduleRequestLiveboardOptions { }[]; constructor(); } +type SearchWebhookConfigurationsRequestEventTypeEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -13943,46 +13855,11 @@ declare class UpdateScheduleRequestLiveboardOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options for PDF export. -*/ -declare class UpdateScheduleRequestPdfOptions { - /** - * Indicates whether to include complete Liveboard. - */ - 'complete_liveboard'?: boolean | null; - /** - * Indicates whether to include cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page - */ - 'include_page_number'?: boolean | null; - /** - * Text to include in the footer of each page. - */ - 'page_footer_text'?: string | null; - /** - * Page orientation of the PDF. - */ - 'page_orientation'?: string | null; - /** - * Page size. - */ - 'page_size'?: UpdateScheduleRequestPdfOptionsPageSizeEnum | null; +declare class SendAgentMessageRequest { /** - * Indicates whether to include only first page of the tables. + * messages to be sent to the agent */ - 'truncate_table'?: boolean | null; + 'messages': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13998,7 +13875,6 @@ declare class UpdateScheduleRequestPdfOptions { }[]; constructor(); } -type UpdateScheduleRequestPdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -14011,19 +13887,9 @@ type UpdateScheduleRequestPdfOptionsPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Recipients of the scheduled job notifications. You can add the ID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. -*/ -declare class UpdateScheduleRequestRecipientDetails { - /** - * Emails of the recipients. - */ - 'emails'?: Array | null; - /** - * User or groups to be set as recipients of the schedule notifications. - */ - 'principals'?: Array | null; +declare class SendAgentMessageResponse { + 'success': boolean; + 'message'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14051,44 +13917,15 @@ declare class UpdateScheduleRequestRecipientDetails { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateScheduleRequest { - /** - * Name of the scheduled job. - */ - 'name'?: string; - /** - * Description of the scheduled job. - */ - 'description'?: string; - /** - * Type of metadata object. - */ - 'metadata_type'?: UpdateScheduleRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object. - */ - 'metadata_identifier'?: string; - /** - * Export file format. - */ - 'file_format'?: UpdateScheduleRequestFileFormatEnum; - 'liveboard_options'?: UpdateScheduleRequestLiveboardOptions; - 'pdf_options'?: UpdateScheduleRequestPdfOptions; - /** - * Time zone - */ - 'time_zone'?: UpdateScheduleRequestTimeZoneEnum; - 'frequency'?: UpdateScheduleRequestFrequency; - 'recipient_details'?: UpdateScheduleRequestRecipientDetails; +declare class SendAgentMessageStreamingRequest { /** - * Status of the schedule + * Unique identifier for the conversation (used to track context) */ - 'status'?: UpdateScheduleRequestStatusEnum; + 'conversation_identifier': string; /** - * Personalised view id of the liveboard to be scheduled. + * messages to be sent to the agent */ - 'personalised_view_id'?: string; + 'messages': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14104,10 +13941,6 @@ declare class UpdateScheduleRequest { }[]; constructor(); } -type UpdateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; -type UpdateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; -type UpdateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; -type UpdateScheduleRequestStatusEnum = "ACTIVE" | "PAUSE"; /** * ThoughtSpot Public REST API @@ -14120,11 +13953,15 @@ type UpdateScheduleRequestStatusEnum = "ACTIVE" | "PAUSE"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateSystemConfigRequest { +declare class SendMessageRequest { /** - * Configuration JSON with the key-value pair of configuration attributes to be updated. + * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. */ - 'configuration': any; + 'metadata_identifier': string; + /** + * A message string with the follow-up question to continue the conversation. + */ + 'message': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14152,15 +13989,16 @@ declare class UpdateSystemConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateTagRequest { + +declare class SetNLInstructionsRequest { /** - * Name of the tag. + * Unique ID or name of the data-model for which to set NL instructions. */ - 'name'?: string; + 'data_source_identifier': string; /** - * Hex color code to be assigned to the tag. For example, #ff78a9. + * List of NL instructions to set for the data-model. */ - 'color'?: string; + 'nl_instructions_info': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14188,51 +14026,15 @@ declare class UpdateTagRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateUserGroupRequest { - /** - * Name of the group to modify. - */ - 'name'?: string; - /** - * ID of the Liveboards to be assigned as default Liveboards to the users in the group. - */ - 'default_liveboard_identifiers'?: Array; - /** - * Description for the group. - */ - 'description'?: string; - /** - * Display name of the group. - */ - 'display_name'?: string; - /** - * Privileges to assign to the group. - */ - 'privileges'?: Array; - /** - * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. - */ - 'sub_group_identifiers'?: Array; - /** - * Type of the group - */ - 'type'?: UpdateUserGroupRequestTypeEnum; - /** - * GUID or name of the users to assign to the group. - */ - 'user_identifiers'?: Array; - /** - * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. - */ - 'visibility'?: UpdateUserGroupRequestVisibilityEnum; +declare class ShareMetadataTypeInput { /** - * Role identifiers of the Roles that should be assigned to the group. + * Type of metadata. Type of metadata. 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. */ - 'role_identifiers'?: Array; + 'type'?: ShareMetadataTypeInputTypeEnum | null; /** - * Type of update operation. Default operation type is REPLACE + * Unique ID or name of the metadata object. */ - 'operation'?: UpdateUserGroupRequestOperationEnum; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14248,10 +14050,7 @@ declare class UpdateUserGroupRequest { }[]; constructor(); } -type UpdateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type UpdateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type UpdateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type ShareMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -14265,75 +14064,119 @@ type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * Do not edit the class manually. */ -declare class UpdateUserRequest { - /** - * Name of the user. The username string must be unique. - */ - 'name'?: string; - /** - * A unique display name string for the user account, usually their first and last name - */ - 'display_name'?: string; - /** - * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. - */ - 'visibility'?: UpdateUserRequestVisibilityEnum; +declare class SharePermissionsInput { + 'principal': PrincipalsInput; /** - * Email of the user account + * Type of access to the shared object */ - 'email'?: string; - /** - * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. - */ - 'account_status'?: UpdateUserRequestAccountStatusEnum; + 'share_mode': SharePermissionsInputShareModeEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type SharePermissionsInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class ShareMetadataRequest { /** - * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + * Type of metadata. Required if identifier in metadata_identifies is a name. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN 5. Connection */ - 'notify_on_share'?: boolean | null; + 'metadata_type'?: ShareMetadataRequestMetadataTypeEnum; /** - * The user preference for revisiting the onboarding experience. + * Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type */ - 'show_onboarding_experience'?: boolean | null; + 'metadata_identifiers'?: Array; /** - * Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough. + * Metadata details for sharing objects. */ - 'onboarding_experience_completed'?: boolean | null; + 'metadata'?: Array; /** - * Type of the account. + * Permission details for sharing the objects. */ - 'account_type'?: UpdateUserRequestAccountTypeEnum; + 'permissions': Array; /** - * GUIDs or names of the groups. + * Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard. */ - 'group_identifiers'?: Array; + 'visualization_identifiers'?: Array; /** - * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. + * Email IDs to which notifications will be sent. */ - 'home_liveboard_identifier'?: string; + 'emails'?: Array; /** - * Metadata objects to add to the user\'s favorites list. + * Message to be included in notification. */ - 'favorite_metadata'?: Array; + 'message': string; /** - * IDs of the Orgs. + * Sends object URLs in the customized format in email notifications. */ - 'org_identifiers'?: Array; + 'enable_custom_url'?: boolean | null; /** - * Type of update operation. Default operation type is REPLACE + * Flag to notify user when any object is shared. */ - 'operation'?: UpdateUserRequestOperationEnum; + 'notify_on_share'?: boolean | null; /** - * Locale for the user. + * Flag to make the object discoverable. */ - 'preferred_locale'?: UpdateUserRequestPreferredLocaleEnum; + 'has_lenient_discoverability'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type ShareMetadataRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SingleAnswerRequest { /** - * Properties for the user + * A natural language query string to generate the Answer. */ - 'extended_properties'?: any; + 'query': string; /** - * Preferences for the user + * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query. */ - 'extended_preferences'?: any; + 'metadata_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14349,11 +14192,6 @@ declare class UpdateUserRequest { }[]; constructor(); } -type UpdateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type UpdateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type UpdateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type UpdateUserRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; -type UpdateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -14366,20 +14204,15 @@ type UpdateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateVariableRequest { - /** - * New name of the variable if we want to rename. - */ - 'name'?: string; +declare class SortOption { /** - * Operation to perform on the values. + * Name of the field to apply the sort on. */ - 'operation'?: UpdateVariableRequestOperationEnum; + 'field_name'?: SortOptionFieldNameEnum | null; /** - * Values of variable to be updated. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'values'?: Array; + 'order'?: SortOptionOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14395,7 +14228,8 @@ declare class UpdateVariableRequest { }[]; constructor(); } -type UpdateVariableRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type SortOptionFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SortOptionOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -14408,19 +14242,15 @@ type UpdateVariableRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Input for variable value update -*/ -declare class VariableValueInput { +declare class SortOptionInput { /** - * ID or Name of the variable + * Name of the field to apply the sort on. */ - 'variable_identifier': string; + 'field_name'?: SortOptionInputFieldNameEnum | null; /** - * Values of the variable + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'variable_values': Array; + 'order'?: SortOptionInputOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14436,6 +14266,8 @@ declare class VariableValueInput { }[]; constructor(); } +type SortOptionInputFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; +type SortOptionInputOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -14448,16 +14280,18 @@ declare class VariableValueInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateVariableValuesRequest { +/** +* Sort options. +*/ +declare class SortOptions { /** - * Variables and values + * Name of the field to apply the sort on. */ - 'variable_updates': Array; + 'field_name'?: SortOptionsFieldNameEnum | null; /** - * Type of update operation + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'operation': UpdateVariableValuesRequestOperationEnum; + 'order'?: SortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14473,7 +14307,8 @@ declare class UpdateVariableValuesRequest { }[]; constructor(); } -type UpdateVariableValuesRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type SortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -14486,182 +14321,3008 @@ type UpdateVariableValuesRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class User { +/** +* Sort options. +*/ +declare class SortingOptions { /** - * Unique identifier of the user. + * Name of the field to apply the sort on. */ - 'id': string; + 'field_name'?: string | null; /** - * Name of the user. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'name': string; + 'order'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Response format associated with fetch SQL query api +*/ +declare class SqlQuery { /** - * Display name of the user. + * Unique identifier of the metadata. */ - 'display_name': string; + 'metadata_id': string; /** - * Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user. + * Name of the metadata. */ - 'visibility': UserVisibilityEnum; + 'metadata_name': string; /** - * Unique identifier of author of the user. + * SQL query of a metadata object. */ - 'author_id'?: string | null; + 'sql_query': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class SqlQueryResponse { /** - * Defines whether the user can change their password. + * Unique identifier of the metadata. */ - 'can_change_password'?: boolean | null; + 'metadata_id': string; /** - * Defines whether the response has complete detail of the user. + * Name of the metadata. */ - 'complete_detail'?: boolean | null; + 'metadata_name': string; /** - * Creation time of the user in milliseconds. + * Type of the metadata. */ - 'creation_time_in_millis'?: number | null; - 'current_org'?: Org; + 'metadata_type': SqlQueryResponseMetadataTypeEnum; /** - * Indicates whether the user is deleted. + * SQL query details of metadata objects. */ - 'deleted'?: boolean | null; + 'sql_queries': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type SqlQueryResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SystemConfig { + 'onboarding_content_url'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SystemInfo { /** - * Indicates whether the user is deprecated. + * The unique identifier of the object */ - 'deprecated'?: boolean | null; + 'id'?: string | null; /** - * Type of the user account. + * Name of the cluster. */ - 'account_type'?: UserAccountTypeEnum | null; + 'name'?: string | null; /** - * Status of the user account. + * The release version of the cluster. */ - 'account_status'?: UserAccountStatusEnum | null; + 'release_version'?: string | null; /** - * Email of the user. + * The timezone of the cluster. */ - 'email'?: string | null; + 'time_zone'?: string | null; /** - * Expiration time of the user in milliseconds. + * The default locale of the cluster. */ - 'expiration_time_in_millis'?: number | null; + 'locale'?: string | null; /** - * Indicates whether the user is external. + * The default date format representation of the cluster. */ - 'external'?: boolean | null; + 'date_format'?: string | null; /** - * Metadata objects to add to the users\' favorites list. + * The API version of the cluster. */ - 'favorite_metadata'?: Array | null; + 'api_version'?: string | null; /** - * Timestamp of the first login session of the user in milliseconds. + * The deployment type of the cluster. */ - 'first_login_time_in_millis'?: number | null; + 'type'?: string | null; /** - * Group mask of the user. + * The deployed environment of the cluster. */ - 'group_mask'?: number | null; + 'environment'?: string | null; /** - * Indicates whether the user is hidden. + * The license applied to the cluster. */ - 'hidden'?: boolean | null; - 'home_liveboard'?: ObjectIDAndName; + 'license'?: string | null; /** - * Incomplete details of user if any present. + * The default date time format representation of the cluster. */ - 'incomplete_details'?: any | null; + 'date_time_format'?: string | null; /** - * Indicates whether it is first login of the user. + * The default time format representation of the cluster. */ - 'is_first_login'?: boolean | null; + 'time_format'?: string | null; /** - * Last modified time of the user in milliseconds. + * The unique identifier of system user. */ - 'modification_time_in_millis'?: number | null; + 'system_user_id'?: string | null; /** - * Unique identifier of modifier of the user. + * The unique identifier of super user. */ - 'modifier_id'?: string | null; + 'super_user_id'?: string | null; /** - * User preference for receiving email notifications on shared Answers or Liveboard. + * The unique identifier of hidden object. */ - 'notify_on_share'?: boolean | null; + 'hidden_object_id'?: string | null; /** - * The user preference for turning off the onboarding experience. + * The unique identifier of system group. */ - 'onboarding_experience_completed'?: boolean | null; + 'system_group_id'?: string | null; /** - * Orgs to which the user belongs. + * The unique identifier of tsadmin user. */ - 'orgs'?: Array | null; + 'tsadmin_user_id'?: string | null; /** - * Unique identifier of owner of the user. + * The unique identifier of admin group. */ - 'owner_id'?: string | null; + 'admin_group_id'?: string | null; /** - * Parent type of the user. + * The unique identifier of all tables connection. */ - 'parent_type'?: UserParentTypeEnum | null; + 'all_tables_connection_id'?: string | null; /** - * Privileges which are assigned to the user. + * The unique identifier of ALL group. */ - 'privileges'?: Array | null; + 'all_user_group_id'?: string | null; /** - * User\'s preference to revisit the new user onboarding experience. + * The supported accept language by the cluster. */ - 'show_onboarding_experience'?: boolean | null; + 'accept_language'?: string | null; /** - * Indicates whether the user is a super user. + * The count of users of ALL group. */ - 'super_user'?: boolean | null; + 'all_user_group_member_user_count'?: number | null; /** - * Indicates whether the user is a system user. + * The version number of logical model of the cluster. */ - 'system_user'?: boolean | null; + 'logical_model_version'?: number | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SystemOverrideInfo { + 'config_override_info'?: any | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class Tag { + 'name': string; + 'id': string; + 'color'?: string | null; + 'deleted'?: boolean | null; + 'hidden'?: boolean | null; + 'external'?: boolean | null; + 'deprecated'?: boolean | null; + 'creation_time_in_millis'?: number | null; + 'modification_time_in_millis'?: number | null; + 'author_id'?: string | null; + 'modifier_id'?: string | null; + 'owner_id'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Email customization configuration properties +*/ +declare class TemplatePropertiesInputCreate { /** - * Tags associated with the user. + * Background color for call-to-action button in hex format */ - 'tags'?: Array | null; + 'cta_button_bg_color'?: string | null; + /** + * Text color for call-to-action button in hex format + */ + 'cta_text_font_color'?: string | null; + /** + * Primary background color in hex format + */ + 'primary_bg_color'?: string | null; + /** + * Home page URL (HTTP/HTTPS only) + */ + 'home_url'?: string | null; + /** + * Logo image URL (HTTP/HTTPS only) + */ + 'logo_url'?: string | null; + /** + * Font family for email content (e.g., Arial, sans-serif) + */ + 'font_family'?: string | null; + /** + * Product name to display + */ + 'product_name'?: string | null; + /** + * Footer address text + */ + 'footer_address'?: string | null; + /** + * Footer phone number + */ + 'footer_phone'?: string | null; + /** + * Replacement value for Liveboard + */ + 'replacement_value_for_liveboard'?: string | null; + /** + * Replacement value for Answer + */ + 'replacement_value_for_answer'?: string | null; + /** + * Replacement value for SpotIQ + */ + 'replacement_value_for_spot_iq'?: string | null; + /** + * Whether to hide footer address + */ + 'hide_footer_address'?: boolean | null; + /** + * Whether to hide footer phone number + */ + 'hide_footer_phone'?: boolean | null; + /** + * Whether to hide manage notification link + */ + 'hide_manage_notification'?: boolean | null; + /** + * Whether to hide mobile app nudge + */ + 'hide_mobile_app_nudge'?: boolean | null; + /** + * Whether to hide privacy policy link + */ + 'hide_privacy_policy'?: boolean | null; + /** + * Whether to hide product name + */ + 'hide_product_name'?: boolean | null; + /** + * Whether to hide ThoughtSpot vocabulary definitions + */ + 'hide_ts_vocabulary_definitions'?: boolean | null; + /** + * Whether to hide notification status + */ + 'hide_notification_status'?: boolean | null; + /** + * Whether to hide error message + */ + 'hide_error_message'?: boolean | null; + /** + * Whether to hide unsubscribe link + */ + 'hide_unsubscribe_link'?: boolean | null; + /** + * Whether to hide modify alert + */ + 'hide_modify_alert'?: boolean | null; + /** + * Company privacy policy URL (HTTP/HTTPS only) + */ + 'company_privacy_policy_url'?: string | null; + /** + * Company website URL (HTTP/HTTPS only) + */ + 'company_website_url'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class Token { + /** + * Bearer auth token. + */ + 'token': string; + /** + * Token creation time in milliseconds. + */ + 'creation_time_in_millis': number; + /** + * Token expiration time in milliseconds. + */ + 'expiration_time_in_millis': number; + 'scope': Scope; + /** + * Username to whom the token is issued. + */ + 'valid_for_user_id': string; + /** + * Unique identifier of the user to whom the token is issued. + */ + 'valid_for_username': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class TokenValidationResponse { + /** + * Token creation time in milliseconds. + */ + 'creation_time_in_millis': number; + /** + * Token expiration time in milliseconds. + */ + 'expiration_time_in_millis': number; + 'scope': Scope; + /** + * Username to whom the token is issued. + */ + 'valid_for_user_id': string; + /** + * Type of token. + */ + 'token_type': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UnparameterizeMetadataRequest { + /** + * Type of metadata object to unparameterize. + */ + 'metadata_type'?: UnparameterizeMetadataRequestMetadataTypeEnum; + /** + * Unique ID or name of the metadata object to unparameterize. + */ + 'metadata_identifier': string; + /** + * Type of field in the metadata to unparameterize. + */ + 'field_type': UnparameterizeMetadataRequestFieldTypeEnum; + /** + * Name of the field which needs to be unparameterized. + */ + 'field_name': string; + /** + * The value to use in place of the variable for the field + */ + 'value': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UnparameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; +type UnparameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UnpublishMetadataRequest { + /** + * Force unpublishes the object. This will break all the dependent objects in the unpublished orgs. + */ + 'force'?: boolean | null; + /** + * Should we unpublish all the dependencies for the objects specified. The dependencies will be unpublished if no other published object is using it. + */ + 'include_dependencies': boolean; + /** + * Metadata objects. + */ + 'metadata': Array; + /** + * Unique ID or name of orgs. + */ + 'org_identifiers': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. +*/ +declare class UpdateCalendarRequestTableReference { + /** + * Unique ID or name of the connection. + */ + 'connection_identifier': string; + /** + * Name of the database. + */ + 'database_name'?: string | null; + /** + * Name of the schema. + */ + 'schema_name'?: string | null; + /** + * Name of the table. Table names may be case-sensitive depending on the database system. + */ + 'table_name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateCalendarRequest { + /** + * Type of update operation. + */ + 'update_method'?: UpdateCalendarRequestUpdateMethodEnum; + 'table_reference': UpdateCalendarRequestTableReference; + /** + * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + */ + 'start_date'?: string; + /** + * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + */ + 'end_date'?: string; + /** + * Type of the calendar. + */ + 'calendar_type'?: UpdateCalendarRequestCalendarTypeEnum; + /** + * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). + */ + 'month_offset'?: UpdateCalendarRequestMonthOffsetEnum; + /** + * Specify the starting day of the week + */ + 'start_day_of_week'?: UpdateCalendarRequestStartDayOfWeekEnum; + /** + * Prefix to add before the quarter. + */ + 'quarter_name_prefix'?: string; + /** + * Prefix to add before the year. + */ + 'year_name_prefix'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateCalendarRequestUpdateMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; +type UpdateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; +type UpdateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; +type UpdateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateColumnSecurityRulesRequest { + /** + * GUID or name of the table for which we want to create column security rules + */ + 'identifier'?: string; + /** + * The object ID of the table + */ + 'obj_identifier'?: string; + /** + * If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed + */ + 'clear_csr'?: boolean | null; + /** + * Array where each object defines the security rule for a specific column + */ + 'column_security_rules': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConfigRequest { + /** + * Username to authenticate connection to version control system + */ + 'username'?: string; + /** + * Access token corresponding to the user to authenticate connection to version control system + */ + 'access_token'?: string; + /** + * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later + */ + 'org_identifier'?: string; + /** + * List the remote branches to configure. Example:[development, production] + */ + 'branch_names'?: Array; + /** + * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + */ + 'commit_branch_name'?: string; + /** + * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + */ + 'enable_guid_mapping'?: boolean | null; + /** + * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Version: 9.7.0.cl or later + */ + 'configuration_branch_name'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConnectionConfigurationRequest { + /** + * Unique ID or name of the connection. + */ + 'connection_identifier': string; + /** + * Name of the configuration to update. + */ + 'name'?: string; + /** + * Description of the configuration. + */ + 'description'?: string; + /** + * Type of authentication. + */ + 'authentication_type'?: UpdateConnectionConfigurationRequestAuthenticationTypeEnum; + /** + * Configuration properties in JSON. + */ + 'configuration'?: any; + /** + * Type of policy. + */ + 'policy_type'?: UpdateConnectionConfigurationRequestPolicyTypeEnum; + /** + * Unique ID or name of the User and User Groups. + */ + 'policy_principals'?: Array; + /** + * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + */ + 'policy_processes'?: Array; + /** + * Indicates whether the configuration enable/disable. + */ + 'disable'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "EXTOAUTH" | "KEY_PAIR" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PKCE" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_CLIENT_CREDENTIALS"; +type UpdateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; +type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConnectionRequest { + /** + * Unique ID or name of the connection. + */ + 'connection_identifier': string; + /** + * Updated name of the connection. + */ + 'name'?: string; + /** + * Updated description of the connection. + */ + 'description'?: string; + /** + * Configuration of the data warehouse in JSON. + */ + 'data_warehouse_config'?: any; + /** + * Indicates whether to validate the connection details. + */ + 'validate'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConnectionV2Request { + /** + * Updated name of the connection. + */ + 'name'?: string; + /** + * Updated description of the connection. + */ + 'description'?: string; + /** + * Configuration of the data warehouse in JSON. + */ + 'data_warehouse_config'?: any; + /** + * Indicates whether to validate the connection details. + */ + 'validate'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required. +*/ +declare class UpdateCustomActionRequestActionDetails { + 'CALLBACK'?: CALLBACKInput; + 'URL'?: URLInput; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Default Custom action configuration. This includes if the custom action available on visualizations and Answers. By default, a custom action is added to all visualizations and Answers. +*/ +declare class UpdateCustomActionRequestDefaultActionConfig { + /** + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + */ + 'visibility'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateCustomActionRequest { + 'action_details'?: UpdateCustomActionRequestActionDetails; + /** + * Metadata objects to which the custom action needs to be associated. + */ + 'associate_metadata'?: Array; + 'default_action_config'?: UpdateCustomActionRequestDefaultActionConfig; + /** + * Unique ID or name of the groups that can view and access the custom action. + */ + 'group_identifiers'?: Array; + /** + * Name of the custom action. The custom action name must be unique. + */ + 'name'?: string; + /** + * Type of update operation. Default operation type is ADD + */ + 'operation'?: UpdateCustomActionRequestOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateCustomActionRequestOperationEnum = "ADD" | "REMOVE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateEmailCustomizationRequest { + 'template_properties': CreateEmailCustomizationRequestTemplateProperties; + /** + * Unique ID or name of org + */ + 'org_identifier'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateMetadataHeaderRequest { + /** + * List of header objects to update. + */ + 'headers_update': Array; + /** + * Unique ID or name of the organization. + */ + 'org_identifier'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Input for updating object ID of a metadata object. +*/ +declare class UpdateObjIdInput { + /** + * GUID or name of the metadata object. + */ + 'metadata_identifier'?: string | null; + /** + * Type of metadata. Required if metadata_identifier is name of the object. + */ + 'type'?: UpdateObjIdInputTypeEnum | null; + /** + * Current object ID value. + */ + 'current_obj_id'?: string | null; + /** + * New object ID value to set. + */ + 'new_obj_id': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateObjIdInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateMetadataObjIdRequest { + /** + * List of metadata objects to update their object IDs. + */ + 'metadata': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateOrgRequest { + /** + * Name of the Org + */ + 'name'?: string; + /** + * Description of the Org + */ + 'description'?: string; + /** + * Add Users to an Org + */ + 'user_identifiers'?: Array; + /** + * Add Default Groups to an Org + */ + 'group_identifiers'?: Array; + /** + * Type of update operation. Default operation type is ADD + */ + 'operation'?: UpdateOrgRequestOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateOrgRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateRoleRequest { + /** + * Name of the Role. + */ + 'name': string; + /** + * Description of the Role. + */ + 'description'?: string; + /** + * Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. + */ + 'privileges'?: Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Frequency of the scheduled job run. +*/ +declare class UpdateScheduleRequestFrequency { + 'cron_expression': CronExpressionInput; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Options to specify the details of a Liveboard. +*/ +declare class UpdateScheduleRequestLiveboardOptions { + /** + * Unique ID or name of visualizations. + */ + 'visualization_identifiers': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Options for PDF export. +*/ +declare class UpdateScheduleRequestPdfOptions { + /** + * Indicates whether to include complete Liveboard. + */ + 'complete_liveboard'?: boolean | null; + /** + * Indicates whether to include cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page + */ + 'include_page_number'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: UpdateScheduleRequestPdfOptionsPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateScheduleRequestPdfOptionsPageSizeEnum = "A4"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Recipients of the scheduled job notifications. You can add the ID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. +*/ +declare class UpdateScheduleRequestRecipientDetails { + /** + * Emails of the recipients. + */ + 'emails'?: Array | null; + /** + * User or groups to be set as recipients of the schedule notifications. + */ + 'principals'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateScheduleRequest { + /** + * Name of the scheduled job. + */ + 'name'?: string; + /** + * Description of the scheduled job. + */ + 'description'?: string; + /** + * Type of metadata object. + */ + 'metadata_type'?: UpdateScheduleRequestMetadataTypeEnum; + /** + * Unique ID or name of the metadata object. + */ + 'metadata_identifier'?: string; + /** + * Export file format. + */ + 'file_format'?: UpdateScheduleRequestFileFormatEnum; + 'liveboard_options'?: UpdateScheduleRequestLiveboardOptions; + 'pdf_options'?: UpdateScheduleRequestPdfOptions; + /** + * Time zone + */ + 'time_zone'?: UpdateScheduleRequestTimeZoneEnum; + 'frequency'?: UpdateScheduleRequestFrequency; + 'recipient_details'?: UpdateScheduleRequestRecipientDetails; + /** + * Status of the schedule + */ + 'status'?: UpdateScheduleRequestStatusEnum; + /** + * Personalised view id of the liveboard to be scheduled. + */ + 'personalised_view_id'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; +type UpdateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; +type UpdateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; +type UpdateScheduleRequestStatusEnum = "ACTIVE" | "PAUSE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateSystemConfigRequest { + /** + * Configuration JSON with the key-value pair of configuration attributes to be updated. + */ + 'configuration': any; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateTagRequest { + /** + * Name of the tag. + */ + 'name'?: string; + /** + * Hex color code to be assigned to the tag. For example, #ff78a9. + */ + 'color'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateUserGroupRequest { + /** + * Name of the group to modify. + */ + 'name'?: string; + /** + * ID of the Liveboards to be assigned as default Liveboards to the users in the group. + */ + 'default_liveboard_identifiers'?: Array; + /** + * Description for the group. + */ + 'description'?: string; + /** + * Display name of the group. + */ + 'display_name'?: string; + /** + * Privileges to assign to the group. + */ + 'privileges'?: Array; + /** + * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + */ + 'sub_group_identifiers'?: Array; + /** + * Type of the group + */ + 'type'?: UpdateUserGroupRequestTypeEnum; + /** + * GUID or name of the users to assign to the group. + */ + 'user_identifiers'?: Array; + /** + * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + */ + 'visibility'?: UpdateUserGroupRequestVisibilityEnum; + /** + * Role identifiers of the Roles that should be assigned to the group. + */ + 'role_identifiers'?: Array; + /** + * Type of update operation. Default operation type is REPLACE + */ + 'operation'?: UpdateUserGroupRequestOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type UpdateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type UpdateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateUserRequest { + /** + * Name of the user. The username string must be unique. + */ + 'name'?: string; + /** + * A unique display name string for the user account, usually their first and last name + */ + 'display_name'?: string; + /** + * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. + */ + 'visibility'?: UpdateUserRequestVisibilityEnum; + /** + * Email of the user account + */ + 'email'?: string; + /** + * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. + */ + 'account_status'?: UpdateUserRequestAccountStatusEnum; + /** + * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for revisiting the onboarding experience. + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough. + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * Type of the account. + */ + 'account_type'?: UpdateUserRequestAccountTypeEnum; + /** + * GUIDs or names of the groups. + */ + 'group_identifiers'?: Array; + /** + * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. + */ + 'home_liveboard_identifier'?: string; + /** + * Metadata objects to add to the user\'s favorites list. + */ + 'favorite_metadata'?: Array; + /** + * IDs of the Orgs. + */ + 'org_identifiers'?: Array; + /** + * Type of update operation. Default operation type is REPLACE + */ + 'operation'?: UpdateUserRequestOperationEnum; + /** + * Locale for the user. + */ + 'preferred_locale'?: UpdateUserRequestPreferredLocaleEnum; + /** + * Properties for the user + */ + 'extended_properties'?: any; + /** + * Preferences for the user + */ + 'extended_preferences'?: any; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type UpdateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type UpdateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type UpdateUserRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type UpdateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateVariableRequest { + /** + * New name of the variable. + */ + 'name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Input for variable value update in batch operations +*/ +declare class VariableUpdateAssignmentInput { + /** + * ID or Name of the variable + */ + 'variable_identifier': string; + /** + * Values of the variable + */ + 'variable_values': Array; + /** + * Operation to perform + */ + 'operation': VariableUpdateAssignmentInputOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableUpdateAssignmentInputOperationEnum = "ADD" | "REMOVE" | "REPLACE" | "RESET"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Input for variable value update in batch operations +*/ +declare class VariableUpdateScopeInput { + /** + * The unique name of the org + */ + 'org_identifier': string; + /** + * Principal type + */ + 'principal_type'?: VariableUpdateScopeInputPrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * Unique ID of the model + */ + 'model_identifier'?: string | null; + /** + * Priority level + */ + 'priority'?: number | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableUpdateScopeInputPrincipalTypeEnum = "USER" | "USER_GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateVariableValuesRequest { + /** + * Variables and values to update + */ + 'variable_assignment': Array; + /** + * Variables and values to update + */ + 'variable_value_scope': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateWebhookConfigurationRequest { + /** + * Name of the webhook configuration. + */ + 'name'?: string; + /** + * Description of the webhook configuration. + */ + 'description'?: string; + /** + * The webhook endpoint URL. + */ + 'url'?: string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any; + /** + * List of events to subscribe to. + */ + 'events'?: Array; + 'authentication'?: CreateWebhookConfigurationRequestAuthentication; + 'signature_verification'?: CreateWebhookConfigurationRequestSignatureVerification; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateWebhookConfigurationRequestEventsEnum = "LIVEBOARD_SCHEDULE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class User { + /** + * Unique identifier of the user. + */ + 'id': string; + /** + * Name of the user. + */ + 'name': string; + /** + * Display name of the user. + */ + 'display_name': string; + /** + * Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user. + */ + 'visibility': UserVisibilityEnum; + /** + * Unique identifier of author of the user. + */ + 'author_id'?: string | null; + /** + * Defines whether the user can change their password. + */ + 'can_change_password'?: boolean | null; + /** + * Defines whether the response has complete detail of the user. + */ + 'complete_detail'?: boolean | null; + /** + * Creation time of the user in milliseconds. + */ + 'creation_time_in_millis'?: number | null; + 'current_org'?: Org; + /** + * Indicates whether the user is deleted. + */ + 'deleted'?: boolean | null; + /** + * Indicates whether the user is deprecated. + */ + 'deprecated'?: boolean | null; + /** + * Type of the user account. + */ + 'account_type'?: UserAccountTypeEnum | null; + /** + * Status of the user account. + */ + 'account_status'?: UserAccountStatusEnum | null; + /** + * Email of the user. + */ + 'email'?: string | null; + /** + * Expiration time of the user in milliseconds. + */ + 'expiration_time_in_millis'?: number | null; + /** + * Indicates whether the user is external. + */ + 'external'?: boolean | null; + /** + * Metadata objects to add to the users\' favorites list. + */ + 'favorite_metadata'?: Array | null; + /** + * Timestamp of the first login session of the user in milliseconds. + */ + 'first_login_time_in_millis'?: number | null; + /** + * Group mask of the user. + */ + 'group_mask'?: number | null; + /** + * Indicates whether the user is hidden. + */ + 'hidden'?: boolean | null; + 'home_liveboard'?: ObjectIDAndName; + /** + * Incomplete details of user if any present. + */ + 'incomplete_details'?: any | null; + /** + * Indicates whether it is first login of the user. + */ + 'is_first_login'?: boolean | null; + /** + * Last modified time of the user in milliseconds. + */ + 'modification_time_in_millis'?: number | null; + /** + * Unique identifier of modifier of the user. + */ + 'modifier_id'?: string | null; + /** + * User preference for receiving email notifications on shared Answers or Liveboard. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for turning off the onboarding experience. + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * Orgs to which the user belongs. + */ + 'orgs'?: Array | null; + /** + * Unique identifier of owner of the user. + */ + 'owner_id'?: string | null; + /** + * Parent type of the user. + */ + 'parent_type'?: UserParentTypeEnum | null; + /** + * Privileges which are assigned to the user. + */ + 'privileges'?: Array | null; + /** + * User\'s preference to revisit the new user onboarding experience. + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Indicates whether the user is a super user. + */ + 'super_user'?: boolean | null; + /** + * Indicates whether the user is a system user. + */ + 'system_user'?: boolean | null; + /** + * Tags associated with the user. + */ + 'tags'?: Array | null; + /** + * Unique identifier of tenant of the user. + */ + 'tenant_id'?: string | null; + /** + * Groups to which the user is assigned. + */ + 'user_groups'?: Array | null; + /** + * Inherited User Groups which the user is part of. + */ + 'user_inherited_groups'?: Array | null; + /** + * Indicates whether welcome email is sent for the user. + */ + 'welcome_email_sent'?: boolean | null; + /** + * Privileges which are assigned to the user with org. + */ + 'org_privileges'?: any | null; + /** + * Locale for the user. + */ + 'preferred_locale'?: string | null; + /** + * Properties for the user + */ + 'extended_properties'?: any | null; + /** + * Preferences for the user + */ + 'extended_preferences'?: any | null; + /** + * User Parameters which are specified for the user via JWToken + */ + 'user_parameters'?: any | null; + /** + * Access Control Properties which are specified for the user via JWToken + */ + 'access_control_properties'?: any | null; + /** + * Formula Variables which are specified for the user via JWToken + */ + 'variable_values'?: any | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type UserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type UserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type UserParentTypeEnum = "USER" | "GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UserGroupResponse { + /** + * The unique identifier of the object + */ + 'author_id'?: string | null; + /** + * Indicates whether the response has complete detail of the group. + */ + 'complete_detail'?: boolean | null; + /** + * Content details of the group + */ + 'content'?: any | null; + /** + * Creation time of the group in milliseconds + */ + 'creation_time_in_millis'?: number | null; + /** + * Liveboards that are assigned as default Liveboards to the group. + */ + 'default_liveboards'?: Array | null; + /** + * Indicates whether the group is deleted + */ + 'deleted'?: boolean | null; + /** + * Indicates whether the group is deprecated + */ + 'deprecated'?: boolean | null; + /** + * Description of the group + */ + 'description'?: string | null; + /** + * Display name of the group. + */ + 'display_name': string; + /** + * Indicates whether the group is external + */ + 'external'?: boolean | null; + /** + * Generation number of the group + */ + 'generation_number'?: number | null; + /** + * Indicates whether the group is hidden + */ + 'hidden'?: boolean | null; + /** + * The unique identifier of the object + */ + 'id': string; + /** + * Index number of the group + */ + 'index'?: number | null; + /** + * Index version number of the group + */ + 'index_version'?: number | null; + /** + * Metadata version number of the group + */ + 'metadata_version'?: number | null; + /** + * Last modified time of the group in milliseconds. + */ + 'modification_time_in_millis'?: number | null; + /** + * The unique identifier of the object + */ + 'modifier_id'?: string | null; + /** + * Name of the group. + */ + 'name': string; + /** + * Orgs in which group exists. + */ + 'orgs'?: Array | null; + /** + * The unique identifier of the object + */ + 'owner_id'?: string | null; + /** + * Parent type of the group. + */ + 'parent_type'?: UserGroupResponseParentTypeEnum | null; + /** + * Privileges which are assigned to the group + */ + 'privileges'?: Array | null; + /** + * Groups who are part of the group + */ + 'sub_groups'?: Array | null; + /** + * Indicates whether the group is a system group. + */ + 'system_group'?: boolean | null; + /** + * Tags associated with the group. + */ + 'tags'?: Array | null; + /** + * Type of the group. + */ + 'type'?: UserGroupResponseTypeEnum | null; + /** + * Users who are part of the group. + */ + 'users'?: Array | null; + /** + * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + */ + 'visibility': UserGroupResponseVisibilityEnum; + /** + * List of roles assgined to the user + */ + 'roles'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UserGroupResponseParentTypeEnum = "USER" | "GROUP"; +type UserGroupResponseTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* 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). +*/ +declare class UserParameterOptions { + 'objects'?: Array | null; + /** + * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` + */ + 'runtime_filters'?: Array | null; + /** + * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` + */ + 'runtime_sorts'?: Array | null; + /** + * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + */ + 'parameters'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class ValidateMergeRequest { + /** + * Name of the branch from which changes need to be picked for validation + */ + 'source_branch_name': string; + /** + * Name of the branch where files will be merged + */ + 'target_branch_name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class ValidateTokenRequest { + 'token': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class VariableValue { + /** + * The value of the variable + */ + 'value'?: string | null; + /** + * The value of the variable if it is a list type + */ + 'value_list'?: Array | null; + /** + * The unique name of the org + */ + 'org_identifier': string; + /** + * Principal type + */ + 'principal_type'?: VariableValuePrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + */ + 'priority'?: number | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Variable object +*/ +declare class Variable { + /** + * Unique identifier of the variable + */ + 'id': string; + /** + * Name of the variable + */ + 'name': string; + /** + * Type of the variable + */ + 'variable_type'?: VariableVariableTypeEnum | null; + /** + * If the variable is sensitive + */ + 'sensitive'?: boolean | null; + /** + * Values of the variable + */ + 'values'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableVariableTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookAuthApiKey { /** - * Unique identifier of tenant of the user. + * The header or query parameter name for the API key. */ - 'tenant_id'?: string | null; + 'key': string; /** - * Groups to which the user is assigned. + * The API key value. */ - 'user_groups'?: Array | null; + 'value': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookAuthBasicAuth { /** - * Inherited User Groups which the user is part of. + * Username for basic authentication. */ - 'user_inherited_groups'?: Array | null; + 'username': string; /** - * Indicates whether welcome email is sent for the user. + * Password for basic authentication. */ - 'welcome_email_sent'?: boolean | null; + 'password': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookAuthOAuth2 { /** - * Privileges which are assigned to the user with org. + * OAuth2 authorization server URL. */ - 'org_privileges'?: any | null; + 'authorization_url': string; /** - * Locale for the user. + * OAuth2 client identifier. */ - 'preferred_locale'?: string | null; + 'client_id': string; /** - * Properties for the user + * OAuth2 client secret key. */ - 'extended_properties'?: any | null; + 'client_secret': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class WebhookAuthentication { + 'API_KEY'?: WebhookAuthApiKey; + 'BASIC_AUTH'?: WebhookAuthBasicAuth; /** - * Preferences for the user + * Redacted Bearer token authentication configuration. */ - 'extended_preferences'?: any | null; + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class WebhookAuthenticationInput { + 'API_KEY'?: WebhookAuthApiKeyInput; + 'BASIC_AUTH'?: WebhookAuthBasicAuthInput; + /** + * Bearer token authentication configuration. + */ + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2Input; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookDeleteFailure { + /** + * Unique identifier of the webhook that failed to delete. + */ + 'id': string; + /** + * Name of the webhook that failed to delete. + */ + 'name': string; + /** + * Error message describing why the deletion failed. + */ + 'error': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookOrg { + /** + * Unique identifier of the org. + */ + 'id': string; + /** + * Name of the org. + */ + 'name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookSignatureVerification { + /** + * Signature verification method type. + */ + 'type': WebhookSignatureVerificationTypeEnum; + /** + * HTTP header where the signature is sent. + */ + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': WebhookSignatureVerificationAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type WebhookSignatureVerificationTypeEnum = "HMAC_SHA256"; +type WebhookSignatureVerificationAlgorithmEnum = "SHA256"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookUser { /** - * User Parameters which are specified for the user via JWToken + * Unique identifier of the user. */ - 'user_parameters'?: any | null; + 'id': string; /** - * Access Control Properties which are specified for the user via JWToken + * Name of the user. */ - 'access_control_properties'?: any | null; + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14677,10 +17338,6 @@ declare class User { }[]; constructor(); } -type UserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type UserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type UserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type UserParentTypeEnum = "USER" | "GROUP"; /** * ThoughtSpot Public REST API @@ -14694,127 +17351,44 @@ type UserParentTypeEnum = "USER" | "GROUP"; * Do not edit the class manually. */ -declare class UserGroupResponse { - /** - * The unique identifier of the object - */ - 'author_id'?: string | null; - /** - * Indicates whether the response has complete detail of the group. - */ - 'complete_detail'?: boolean | null; - /** - * Content details of the group - */ - 'content'?: any | null; - /** - * Creation time of the group in milliseconds - */ - 'creation_time_in_millis'?: number | null; - /** - * Liveboards that are assigned as default Liveboards to the group. - */ - 'default_liveboards'?: Array | null; - /** - * Indicates whether the group is deleted - */ - 'deleted'?: boolean | null; - /** - * Indicates whether the group is deprecated - */ - 'deprecated'?: boolean | null; - /** - * Description of the group - */ - 'description'?: string | null; - /** - * Display name of the group. - */ - 'display_name': string; - /** - * Indicates whether the group is external - */ - 'external'?: boolean | null; - /** - * Generation number of the group - */ - 'generation_number'?: number | null; - /** - * Indicates whether the group is hidden - */ - 'hidden'?: boolean | null; +declare class WebhookResponse { /** - * The unique identifier of the object + * Unique identifier of the webhook configuration. */ 'id': string; /** - * Index number of the group - */ - 'index'?: number | null; - /** - * Index version number of the group - */ - 'index_version'?: number | null; - /** - * Metadata version number of the group - */ - 'metadata_version'?: number | null; - /** - * Last modified time of the group in milliseconds. - */ - 'modification_time_in_millis'?: number | null; - /** - * The unique identifier of the object - */ - 'modifier_id'?: string | null; - /** - * Name of the group. + * Name of the webhook configuration. */ 'name': string; /** - * Orgs in which group exists. - */ - 'orgs'?: Array | null; - /** - * The unique identifier of the object - */ - 'owner_id'?: string | null; - /** - * Parent type of the group. - */ - 'parent_type'?: UserGroupResponseParentTypeEnum | null; - /** - * Privileges which are assigned to the group - */ - 'privileges'?: Array | null; - /** - * Groups who are part of the group - */ - 'sub_groups'?: Array | null; - /** - * Indicates whether the group is a system group. + * Description of the webhook configuration. */ - 'system_group'?: boolean | null; + 'description'?: string | null; + 'org'?: WebhookOrg; /** - * Tags associated with the group. + * The webhook endpoint URL. */ - 'tags'?: Array | null; + 'url': string; /** - * Type of the group. + * Additional URL parameters as key-value pairs. */ - 'type'?: UserGroupResponseTypeEnum | null; + 'url_params'?: any | null; /** - * Users who are part of the group. + * List of events this webhook subscribes to. */ - 'users'?: Array | null; + 'events': Array; + 'authentication'?: WebhookAuthentication; + 'signature_verification'?: WebhookSignatureVerification; /** - * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + * Creation time of the webhook configuration in milliseconds. */ - 'visibility': UserGroupResponseVisibilityEnum; + 'creation_time_in_millis': number; /** - * List of roles assgined to the user + * Last modified time of the webhook configuration in milliseconds. */ - 'roles'?: Array | null; + 'modification_time_in_millis': number; + 'created_by'?: WebhookUser; + 'last_modified_by'?: WebhookUser; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14830,9 +17404,7 @@ declare class UserGroupResponse { }[]; constructor(); } -type UserGroupResponseParentTypeEnum = "USER" | "GROUP"; -type UserGroupResponseTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type WebhookResponseEventsEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -14846,23 +17418,23 @@ type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * Do not edit the class manually. */ -/** -* 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). -*/ -declare class UserParameterOptions { - 'objects'?: Array | null; +declare class WebhookDeleteResponse { /** - * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` + * Number of webhooks successfully deleted. */ - 'runtime_filters'?: Array | null; + 'deleted_count': number; /** - * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` + * Number of webhooks that failed to delete. */ - 'runtime_sorts'?: Array | null; + 'failed_count': number; /** - * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + * List of successfully deleted webhooks. */ - 'parameters'?: Array | null; + 'deleted_webhooks': Array; + /** + * List of webhooks that failed to delete with error details. + */ + 'failed_webhooks': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14890,15 +17462,23 @@ declare class UserParameterOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ValidateMergeRequest { +declare class WebhookPagination { /** - * Name of the branch from which changes need to be picked for validation + * The starting record number from where the records are included. */ - 'source_branch_name': string; + 'record_offset': number; /** - * Name of the branch where files will be merged + * The number of records included in the response. */ - 'target_branch_name': string; + 'record_size': number; + /** + * Total number of webhook configurations available. + */ + 'total_count': number; + /** + * Indicates whether more records are available beyond the current response. + */ + 'has_more': boolean; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14926,8 +17506,13 @@ declare class ValidateMergeRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ValidateTokenRequest { - 'token': string; + +declare class WebhookSearchResponse { + /** + * List of webhook configurations matching the search criteria. + */ + 'webhooks': Array; + 'pagination': WebhookPagination; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14955,27 +17540,23 @@ declare class ValidateTokenRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class VariableValue { +declare class WebhookSignatureVerificationInput { /** - * The value of the variable - */ - 'value'?: string | null; - /** - * The unique name of the org + * Signature verification method type. */ - 'org_identifier': string; + 'type': WebhookSignatureVerificationInputTypeEnum; /** - * Principal type + * HTTP header where the signature is sent. */ - 'principal_type'?: VariableValuePrincipalTypeEnum | null; + 'header': string; /** - * Unique ID or name of the principal + * Hash algorithm used for signature verification. */ - 'principal_identifier'?: string | null; + 'algorithm': WebhookSignatureVerificationInputAlgorithmEnum; /** - * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + * Shared secret used for HMAC signature generation. */ - 'priority'?: number | null; + 'secret': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14991,7 +17572,8 @@ declare class VariableValue { }[]; constructor(); } -type VariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; +type WebhookSignatureVerificationInputTypeEnum = "HMAC_SHA256"; +type WebhookSignatureVerificationInputAlgorithmEnum = "SHA256"; /** * ThoughtSpot Public REST API @@ -15004,31 +17586,15 @@ type VariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Variable object -*/ -declare class Variable { - /** - * Unique identifier of the variable - */ - 'id': string; - /** - * Name of the variable - */ - 'name': string; - /** - * Type of the variable - */ - 'variable_type'?: VariableVariableTypeEnum | null; +declare class WebhookSortOptionsInput { /** - * If the variable is sensitive + * Name of the field to apply the sort on. */ - 'sensitive'?: boolean | null; + 'field_name'?: WebhookSortOptionsInputFieldNameEnum | null; /** - * Values of the variable + * Sort order: ASC (Ascending) or DESC (Descending). */ - 'values'?: Array | null; + 'order'?: WebhookSortOptionsInputOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -15044,7 +17610,8 @@ declare class Variable { }[]; constructor(); } -type VariableVariableTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL"; +type WebhookSortOptionsInputFieldNameEnum = "CREATED" | "MODIFIED" | "NAME"; +type WebhookSortOptionsInputOrderEnum = "ASC" | "DESC"; /** * Defines the contract for a middleware intercepting requests before @@ -15242,45 +17809,129 @@ declare class RequiredError extends Error { * no description */ declare class AIApiRequestFactory extends BaseAPIRequestFactory { + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * 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 */ - createConversation(createConversationRequest: CreateConversationRequest, _options?: Configuration): Promise; + createConversation(createConversationRequest: CreateConversationRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.7.0.cl or later + * @param queryGetDecomposedQueryRequest + */ + queryGetDecomposedQuery(queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; + /** + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest + */ + sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest + */ + singleAnswer(singleAnswerRequest: SingleAnswerRequest, _options?: Configuration): Promise; +} +declare class AIApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createAgentConversation(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createConversation(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getDataSourceSuggestions + * @throws ApiException if the response code was not in [200, 299] + */ + getDataSourceSuggestions(response: ResponseContext): Promise; /** - * Version: 10.7.0.cl or later - * @param queryGetDecomposedQueryRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getNLInstructions + * @throws ApiException if the response code was not in [200, 299] */ - queryGetDecomposedQuery(queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest, _options?: Configuration): Promise; + getNLInstructions(response: ResponseContext): Promise; /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getRelevantQuestions + * @throws ApiException if the response code was not in [200, 299] */ - sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise; + getRelevantQuestions(response: ResponseContext): Promise; /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @throws ApiException if the response code was not in [200, 299] */ - singleAnswer(singleAnswerRequest: SingleAnswerRequest, _options?: Configuration): Promise; -} -declare class AIApiResponseProcessor { + queryGetDecomposedQuery(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConversation + * @params response Response returned by the server for a request to sendAgentMessage * @throws ApiException if the response code was not in [200, 299] */ - createConversation(response: ResponseContext): Promise; + sendAgentMessage(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @params response Response returned by the server for a request to sendAgentMessageStreaming * @throws ApiException if the response code was not in [200, 299] */ - queryGetDecomposedQuery(response: ResponseContext): Promise; + sendAgentMessageStreaming(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -15289,6 +17940,14 @@ declare class AIApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ sendMessage(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + setNLInstructions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -15312,7 +17971,7 @@ declare class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; @@ -15431,7 +18090,7 @@ declare class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFa */ connectionConfigurationSearch(connectionConfigurationSearchRequest: ConnectionConfigurationSearchRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -15441,7 +18100,7 @@ declare class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFa */ deleteConnectionConfiguration(deleteConnectionConfigurationRequest: DeleteConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -15522,7 +18181,7 @@ declare class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -15757,12 +18416,12 @@ declare class DBTApiRequestFactory extends BaseAPIRequestFactory { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -15891,7 +18550,7 @@ declare class DataApiResponseProcessor { */ declare class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -15911,7 +18570,7 @@ declare class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory */ searchEmailCustomization(searchEmailCustomizationRequest: SearchEmailCustomizationRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -16076,7 +18735,7 @@ declare class MetadataApiRequestFactory extends BaseAPIRequestFactory { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; @@ -16121,7 +18780,7 @@ declare class MetadataApiRequestFactory extends BaseAPIRequestFactory { */ importMetadataTMLAsync(importMetadataTMLAsyncRequest: ImportMetadataTMLAsyncRequest, _options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -16131,7 +18790,7 @@ declare class MetadataApiRequestFactory extends BaseAPIRequestFactory { */ searchMetadata(searchMetadataRequest: SearchMetadataRequest, _options?: Configuration): Promise; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -16340,7 +18999,7 @@ declare class ReportsApiRequestFactory extends BaseAPIRequestFactory { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -16602,6 +19261,11 @@ declare class SecurityApiResponseProcessor { * no description */ declare class SystemApiRequestFactory extends BaseAPIRequestFactory { + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -16614,6 +19278,11 @@ declare class SystemApiRequestFactory extends BaseAPIRequestFactory { * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. */ getSystemOverrideInfo(_options?: Configuration): Promise; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -16621,6 +19290,14 @@ declare class SystemApiRequestFactory extends BaseAPIRequestFactory { updateSystemConfig(updateSystemConfigRequest: UpdateSystemConfigRequest, _options?: Configuration): Promise; } declare class SystemApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + configureCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -16645,6 +19322,14 @@ declare class SystemApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getSystemOverrideInfo(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + searchCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -16771,6 +19456,11 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { * @param commitBranchRequest */ commitBranch(commitBranchRequest: CommitBranchRequest, _options?: Configuration): Promise; + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -16782,10 +19472,15 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -16802,7 +19497,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ createConnection(createConnectionRequest: CreateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -16817,7 +19512,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ createCustomAction(createCustomActionRequest: CreateCustomActionRequest, _options?: Configuration): Promise; /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -16852,10 +19547,15 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ createUserGroup(createUserGroupRequest: CreateUserGroupRequest, _options?: Configuration): Promise; /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -16879,12 +19579,12 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -16975,10 +19675,15 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ deleteUserGroup(groupIdentifier: string, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -16995,7 +19700,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -17078,20 +19783,35 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest */ getFullAccessToken(getFullAccessTokenRequest: GetFullAccessTokenRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest */ getObjectAccessToken(getObjectAccessTokenRequest: GetObjectAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -17134,7 +19854,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ logout(_options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -17174,6 +19894,11 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { * @param searchCommitsRequest */ searchCommits(searchCommitsRequest: SearchCommitsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -17235,16 +19960,37 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ searchUsers(searchUsersRequest: SearchUsersRequest, _options?: Configuration): Promise; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. * @param sendMessageRequest */ sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -17261,7 +20007,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ unassignTag(assignTagRequest: AssignTagRequest, _options?: Configuration): Promise; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -17292,13 +20038,13 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ updateConnectionConfiguration(configurationIdentifier: string, updateConnectionConfigurationRequest: UpdateConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -17325,7 +20071,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ updateDbtConnection(dbtConnectionIdentifier: string, connectionName?: string, databaseName?: string, importType?: string, accessToken?: string, dbtUrl?: string, accountId?: string, projectId?: string, dbtEnvId?: string, projectName?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -17381,16 +20127,22 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ updateUserGroup(groupIdentifier: string, updateUserGroupRequest: UpdateUserGroupRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -17447,6 +20199,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ commitBranch(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + configureCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17471,6 +20231,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ copyObject(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createAgentConversation(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17583,6 +20351,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ createVariable(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + createWebhookConfiguration(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17759,6 +20535,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ deleteVariable(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + deleteWebhookConfigurations(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17927,6 +20711,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getCustomAccessToken(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getDataSourceSuggestions + * @throws ApiException if the response code was not in [200, 299] + */ + getDataSourceSuggestions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17935,6 +20727,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getFullAccessToken(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + getNLInstructions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17943,6 +20743,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getObjectAccessToken(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getRelevantQuestions + * @throws ApiException if the response code was not in [200, 299] + */ + getRelevantQuestions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18079,6 +20887,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ searchCommits(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + searchCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18183,6 +20999,30 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ searchVariables(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + searchWebhookConfigurations(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessage + * @throws ApiException if the response code was not in [200, 299] + */ + sendAgentMessage(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessageStreaming + * @throws ApiException if the response code was not in [200, 299] + */ + sendAgentMessageStreaming(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18191,6 +21031,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ sendMessage(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + setNLInstructions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18391,6 +21239,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ updateVariableValues(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + updateWebhookConfiguration(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18561,28 +21417,28 @@ declare class UsersApiResponseProcessor { */ declare class VariableApiRequestFactory extends BaseAPIRequestFactory { /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; @@ -18756,25 +21612,122 @@ declare class VersionControlApiResponseProcessor { validateMerge(response: ResponseContext): Promise>; } +/** + * no description + */ +declare class WebhooksApiRequestFactory extends BaseAPIRequestFactory { + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; +} +declare class WebhooksApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + createWebhookConfiguration(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + deleteWebhookConfigurations(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + searchWebhookConfigurations(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + updateWebhookConfiguration(response: ResponseContext): Promise; +} + declare class PromiseAIApi { private api; constructor(configuration: Configuration, requestFactory?: AIApiRequestFactory, responseProcessor?: AIApiResponseProcessor); + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * 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 */ createConversation(createConversationRequest: CreateConversationRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest */ queryGetDecomposedQuery(queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. * @param sendMessageRequest */ sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise>; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -18794,7 +21747,7 @@ declare class PromiseAuthenticationApi { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; @@ -18838,7 +21791,7 @@ declare class PromiseConnectionConfigurationsApi { */ connectionConfigurationSearch(connectionConfigurationSearchRequest: ConnectionConfigurationSearchRequest, _options?: Configuration): Promise>; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -18848,7 +21801,7 @@ declare class PromiseConnectionConfigurationsApi { */ deleteConnectionConfiguration(deleteConnectionConfigurationRequest: DeleteConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -18894,7 +21847,7 @@ declare class PromiseConnectionsApi { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -18984,12 +21937,12 @@ declare class PromiseDBTApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -19040,7 +21993,7 @@ declare class PromiseEmailCustomizationApi { private api; constructor(configuration: Configuration, requestFactory?: EmailCustomizationApiRequestFactory, responseProcessor?: EmailCustomizationApiResponseProcessor); /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -19060,7 +22013,7 @@ declare class PromiseEmailCustomizationApi { */ searchEmailCustomization(searchEmailCustomizationRequest: SearchEmailCustomizationRequest, _options?: Configuration): Promise>; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -19120,7 +22073,7 @@ declare class PromiseMetadataApi { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; @@ -19165,7 +22118,7 @@ declare class PromiseMetadataApi { */ importMetadataTMLAsync(importMetadataTMLAsyncRequest: ImportMetadataTMLAsyncRequest, _options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19175,7 +22128,7 @@ declare class PromiseMetadataApi { */ searchMetadata(searchMetadataRequest: SearchMetadataRequest, _options?: Configuration): Promise>; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19226,7 +22179,7 @@ declare class PromiseReportsApi { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -19332,6 +22285,11 @@ declare class PromiseSecurityApi { declare class PromiseSystemApi { private api; constructor(configuration: Configuration, requestFactory?: SystemApiRequestFactory, responseProcessor?: SystemApiResponseProcessor); + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -19344,6 +22302,11 @@ declare class PromiseSystemApi { * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. */ getSystemOverrideInfo(_options?: Configuration): Promise; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -19415,6 +22378,11 @@ declare class PromiseThoughtSpotRestApi { * @param commitBranchRequest */ commitBranch(commitBranchRequest: CommitBranchRequest, _options?: Configuration): Promise; + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -19426,10 +22394,15 @@ declare class PromiseThoughtSpotRestApi { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -19446,7 +22419,7 @@ declare class PromiseThoughtSpotRestApi { */ createConnection(createConnectionRequest: CreateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -19461,7 +22434,7 @@ declare class PromiseThoughtSpotRestApi { */ createCustomAction(createCustomActionRequest: CreateCustomActionRequest, _options?: Configuration): Promise; /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -19496,10 +22469,15 @@ declare class PromiseThoughtSpotRestApi { */ createUserGroup(createUserGroupRequest: CreateUserGroupRequest, _options?: Configuration): Promise; /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -19523,12 +22501,12 @@ declare class PromiseThoughtSpotRestApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -19619,10 +22597,15 @@ declare class PromiseThoughtSpotRestApi { */ deleteUserGroup(groupIdentifier: string, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -19639,7 +22622,7 @@ declare class PromiseThoughtSpotRestApi { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -19722,20 +22705,35 @@ declare class PromiseThoughtSpotRestApi { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest */ getFullAccessToken(getFullAccessTokenRequest: GetFullAccessTokenRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest */ getObjectAccessToken(getObjectAccessTokenRequest: GetObjectAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -19778,7 +22776,7 @@ declare class PromiseThoughtSpotRestApi { */ logout(_options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19818,6 +22816,11 @@ declare class PromiseThoughtSpotRestApi { * @param searchCommitsRequest */ searchCommits(searchCommitsRequest: SearchCommitsRequest, _options?: Configuration): Promise>; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -19879,16 +22882,37 @@ declare class PromiseThoughtSpotRestApi { */ searchUsers(searchUsersRequest: SearchUsersRequest, _options?: Configuration): Promise>; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise>; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. * @param sendMessageRequest */ sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise>; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -19905,7 +22929,7 @@ declare class PromiseThoughtSpotRestApi { */ unassignTag(assignTagRequest: AssignTagRequest, _options?: Configuration): Promise; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19936,13 +22960,13 @@ declare class PromiseThoughtSpotRestApi { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ updateConnectionConfiguration(configurationIdentifier: string, updateConnectionConfigurationRequest: UpdateConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -19969,7 +22993,7 @@ declare class PromiseThoughtSpotRestApi { */ updateDbtConnection(dbtConnectionIdentifier: string, connectionName?: string, databaseName?: string, importType?: string, accessToken?: string, dbtUrl?: string, accountId?: string, projectId?: string, dbtEnvId?: string, projectName?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -20025,16 +23049,22 @@ declare class PromiseThoughtSpotRestApi { */ updateUserGroup(groupIdentifier: string, updateUserGroupRequest: UpdateUserGroupRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -20111,28 +23141,28 @@ declare class PromiseVariableApi { private api; constructor(configuration: Configuration, requestFactory?: VariableApiRequestFactory, responseProcessor?: VariableApiResponseProcessor); /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise>; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; @@ -20189,18 +23219,76 @@ declare class PromiseVersionControlApi { validateMerge(validateMergeRequest: ValidateMergeRequest, _options?: Configuration): Promise>; } +declare class PromiseWebhooksApi { + private api; + constructor(configuration: Configuration, requestFactory?: WebhooksApiRequestFactory, responseProcessor?: WebhooksApiResponseProcessor); + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; +} + /** - * creates a bearer authentication configuration using params or a token provider - * @param thoughtSpotHost : the base url of the server - * @param paramOrTokenProvider either a GetFullAccessTokenRequest or a TokenProvider , - * Pass a GetFullAccessTokenRequest which contains the object body required to get a full access token , or - * function which returns a promise of a string which is the full access token + * Options for additional configuration settings + */ +interface ConfigurationOptions { + /** + * Additional headers to be included in every request + * @example + * ```typescript + * { + * additionalHeaders: { + * "Accept-Language": "en-US", + * } + * } + * ``` + */ + additionalHeaders?: Record; +} +/** + * creates a bearer authentication configuration using params or a token provider + * @param thoughtSpotHost thoughtSpotHost URL + * @param paramOrTokenProvider either a GetFullAccessTokenRequest or a TokenProvider , + * Pass a GetFullAccessTokenRequest which contains the object body required to get a full access token , or + * function which returns a promise of a string which is the full access token + * @param options - Optional configuration for custom headers and other settings + * @returns Configuration object ready for authenticated API calls + * @example + * ```typescript + * const configWithTokenProvider = createBearerAuthenticationConfig( + * "CLUSTER_SERVER_URL", + * YOUR_TOKEN_PROVIDER, + * { + * additionalHeaders: { + * "Accept-Language": "en-US", + * } + * } + * ); */ -declare const createBearerAuthenticationConfig: (thoughtSpotHost: string, paramOrTokenProvider: GetFullAccessTokenRequest | (() => Promise)) => Configuration; +declare const createBearerAuthenticationConfig: (thoughtSpotHost: string, paramOrTokenProvider: GetFullAccessTokenRequest | (() => Promise), options?: ConfigurationOptions) => Configuration; /** * creates a basic configuration using params which does not require authentication * @param thoughtSpotHost : the base url of the server + * @param options - Optional configuration for additional headers and other settings + * @returns Basic client configuration for unauthenticated API calls */ -declare const createBasicConfig: (thoughtSpotHost: string) => Configuration; +declare const createBasicConfig: (thoughtSpotHost: string, options?: ConfigurationOptions) => Configuration; -export { PromiseAIApi as AIApi, APIKey, APIKeyInput, AccessToken, ActionConfig, ActionConfigInput, ActionConfigInputCreate, ActionConfigInputCreatePositionEnum, ActionConfigInputPositionEnum, ActionDetails, ActionDetailsInput, ActionDetailsInputCreate, ActivateUserRequest, AnswerContent, AnswerDataResponse, ApiException, ApiKeyConfiguration, AssignChangeAuthorRequest, AssignTagRequest, AssociateMetadataInput, AssociateMetadataInputCreate, AssociateMetadataInputCreateTypeEnum, AssociateMetadataInputTypeEnum, AuthMethods, AuthMethodsConfiguration, Authentication, PromiseAuthenticationApi as AuthenticationApi, AuthenticationInput, Author, AuthorMetadataTypeInput, AuthorMetadataTypeInputTypeEnum, AuthorType, BaseServerConfiguration, BasicAuth, BasicAuthInput, BearerAuthAuthentication, CALLBACK, CALLBACKInput, CALLBACKInputMandatory, CalendarResponse, ChangeUserPasswordRequest, Column, ColumnSecurityRule, ColumnSecurityRuleColumn, ColumnSecurityRuleGroup, ColumnSecurityRuleGroupOperation, ColumnSecurityRuleGroupOperationOperationEnum, ColumnSecurityRuleResponse, ColumnSecurityRuleSourceTable, ColumnSecurityRuleTableInput, ColumnSecurityRuleUpdate, CommitBranchRequest, CommitFileType, CommitHistoryResponse, CommitResponse, CommiterType, Configuration, ConnectionConfigurationResponse, ConnectionConfigurationResponseDataWarehouseTypeEnum, ConnectionConfigurationResponsePolicyProcessesEnum, ConnectionConfigurationResponsePolicyTypeEnum, ConnectionConfigurationSearchRequest, ConnectionConfigurationSearchRequestPolicyTypeEnum, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, ConnectionInput, PromiseConnectionsApi as ConnectionsApi, Conversation, ConvertWorksheetToModelRequest, CopyObjectRequest, CopyObjectRequestTypeEnum, CreateCalendarRequest, CreateCalendarRequestCalendarTypeEnum, CreateCalendarRequestCreationMethodEnum, CreateCalendarRequestMonthOffsetEnum, CreateCalendarRequestStartDayOfWeekEnum, CreateCalendarRequestTableReference, CreateConfigRequest, CreateConnectionConfigurationRequest, CreateConnectionConfigurationRequestAuthenticationTypeEnum, CreateConnectionConfigurationRequestPolicyProcessesEnum, CreateConnectionConfigurationRequestPolicyTypeEnum, CreateConnectionRequest, CreateConnectionRequestDataWarehouseTypeEnum, CreateConnectionResponse, CreateConnectionResponseDataWarehouseTypeEnum, CreateConversationRequest, CreateCustomActionRequest, CreateCustomActionRequestActionDetails, CreateCustomActionRequestDefaultActionConfig, CreateEmailCustomizationRequest, CreateEmailCustomizationRequestTemplateProperties, CreateEmailCustomizationResponse, CreateOrgRequest, CreateRoleRequest, CreateRoleRequestPrivilegesEnum, CreateScheduleRequest, CreateScheduleRequestFileFormatEnum, CreateScheduleRequestFrequency, CreateScheduleRequestLiveboardOptions, CreateScheduleRequestMetadataTypeEnum, CreateScheduleRequestPdfOptions, CreateScheduleRequestPdfOptionsPageSizeEnum, CreateScheduleRequestRecipientDetails, CreateScheduleRequestTimeZoneEnum, CreateTagRequest, CreateUserGroupRequest, CreateUserGroupRequestPrivilegesEnum, CreateUserGroupRequestTypeEnum, CreateUserGroupRequestVisibilityEnum, CreateUserRequest, CreateUserRequestAccountStatusEnum, CreateUserRequestAccountTypeEnum, CreateUserRequestPreferredLocaleEnum, CreateUserRequestVisibilityEnum, CreateVariableRequest, CreateVariableRequestTypeEnum, CronExpression, CronExpressionInput, PromiseCustomActionApi as CustomActionApi, CustomActionMetadataTypeInput, CustomActionMetadataTypeInputTypeEnum, PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, DataWarehouseObjectInput, DataWarehouseObjects, Database, DbtSearchResponse, DeactivateUserRequest, DefaultActionConfig, DefaultActionConfigInput, DefaultActionConfigInputCreate, DefaultActionConfigSearchInput, DeleteConfigRequest, DeleteConnectionConfigurationRequest, DeleteConnectionRequest, DeleteMetadataRequest, DeleteMetadataTypeInput, DeleteMetadataTypeInputTypeEnum, DeleteOrgEmailCustomizationRequest, DeployCommitRequest, DeployCommitRequestDeployPolicyEnum, DeployCommitRequestDeployTypeEnum, DeployResponse, PromiseEmailCustomizationApi as EmailCustomizationApi, ErrorResponse, EurekaDecomposeQueryResponse, EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery, ExcludeMetadataListItemInput, ExcludeMetadataListItemInputTypeEnum, ExportAnswerReportRequest, ExportAnswerReportRequestFileFormatEnum, ExportAnswerReportRequestRegionalSettings, ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum, ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsUserLocaleEnum, ExportLiveboardReportRequest, ExportLiveboardReportRequestFileFormatEnum, ExportLiveboardReportRequestPdfOptions, ExportLiveboardReportRequestPdfOptionsPageOrientationEnum, ExportLiveboardReportRequestPngOptions, ExportMetadataTMLBatchedRequest, ExportMetadataTMLBatchedRequestEdocFormatEnum, ExportMetadataTMLBatchedRequestMetadataTypeEnum, ExportMetadataTMLRequest, ExportMetadataTMLRequestEdocFormatEnum, ExportMetadataTMLRequestExportOptions, ExportMetadataTMLRequestExportSchemaVersionEnum, ExportMetadataTypeInput, ExportMetadataTypeInputTypeEnum, ExportOptions, ExternalTableInput, FavoriteMetadataInput, FavoriteMetadataInputTypeEnum, FavoriteMetadataItem, FavoriteMetadataItemTypeEnum, FavoriteObjectOptionsInput, FetchAnswerDataRequest, FetchAnswerDataRequestDataFormatEnum, FetchAnswerSqlQueryRequest, FetchAsyncImportTaskStatusRequest, FetchAsyncImportTaskStatusRequestTaskStatusEnum, FetchColumnSecurityRulesRequest, FetchConnectionDiffStatusResponse, FetchLiveboardDataRequest, FetchLiveboardDataRequestDataFormatEnum, FetchLiveboardSqlQueryRequest, FetchLogsRequest, FetchLogsRequestLogTypeEnum, FetchPermissionsOfPrincipalsRequest, FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum, FetchPermissionsOnMetadataRequest, FilterRules, FilterRulesOperatorEnum, ForceLogoutUsersRequest, Frequency, FrequencyInput, GenerateCSVRequest, GenerateCSVRequestCalendarTypeEnum, GenerateCSVRequestMonthOffsetEnum, GenerateCSVRequestStartDayOfWeekEnum, GenericInfo, GetAsyncImportStatusResponse, GetCustomAccessTokenRequest, GetCustomAccessTokenRequestPersistOptionEnum, GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters, GetObjectAccessTokenRequest, GetTokenResponse, GroupObject, PromiseGroupsApi as GroupsApi, GroupsImportListInput, GroupsImportListInputPrivilegesEnum, GroupsImportListInputTypeEnum, GroupsImportListInputVisibilityEnum, HeaderAttributeInput, HeaderUpdateInput, HeaderUpdateInputTypeEnum, HttpBasicConfiguration, HttpBearerConfiguration, HttpException, HttpFile, HttpLibrary, HttpMethod, ImportEPackAsyncTaskStatus, ImportEPackAsyncTaskStatusImportPolicyEnum, ImportEPackAsyncTaskStatusTaskStatusEnum, ImportMetadataTMLAsyncRequest, ImportMetadataTMLAsyncRequestImportPolicyEnum, ImportMetadataTMLRequest, ImportMetadataTMLRequestImportPolicyEnum, ImportUser, ImportUserAccountStatusEnum, ImportUserAccountTypeEnum, ImportUserGroupsRequest, ImportUserGroupsResponse, ImportUserType, ImportUserVisibilityEnum, ImportUsersRequest, ImportUsersResponse, InputEurekaNLSRequest, InputVariableValue, InputVariableValuePrincipalTypeEnum, IsomorphicFetchHttpLibrary, JWTMetadataObject, JWTMetadataObjectTypeEnum, JWTParameter, JWTUserOptions, JWTUserOptionsFull, LiveboardContent, LiveboardDataResponse, LiveboardOptions, LiveboardOptionsInput, PromiseLogApi as LogApi, LogResponse, LoginRequest, PromiseMetadataApi as MetadataApi, MetadataAssociationItem, MetadataInput, MetadataInputTypeEnum, MetadataListItemInput, MetadataListItemInputSubtypesEnum, MetadataListItemInputTypeEnum, MetadataObject, MetadataObjectTypeEnum, MetadataResponse, MetadataResponseTypeEnum, MetadataSearchResponse, MetadataSearchResponseMetadataTypeEnum, MetadataSearchSortOptions, MetadataSearchSortOptionsFieldNameEnum, MetadataSearchSortOptionsOrderEnum, PromiseMiddleware as Middleware, ModelTableList, OAuth2Configuration, ObjectIDAndName, Org, OrgInfo, OrgResponse, OrgResponseStatusEnum, OrgResponseVisibilityEnum, OrgType, PromiseOrgsApi as OrgsApi, ParameterValues, ParameterizeMetadataRequest, ParameterizeMetadataRequestFieldTypeEnum, ParameterizeMetadataRequestMetadataTypeEnum, ParametersListItem, ParametersListItemInput, PdfOptions, PdfOptionsInput, PdfOptionsInputPageOrientationEnum, PdfOptionsPageSizeEnum, PermissionInput, PermissionInputShareModeEnum, PermissionOfMetadataResponse, PermissionOfPrincipalsResponse, PermissionsMetadataTypeInput, PermissionsMetadataTypeInputTypeEnum, PngOptionsInput, PrincipalsInput, PrincipalsInputTypeEnum, PrincipalsListItem, PrincipalsListItemInput, PromiseHttpLibrary, PublishMetadataListItem, PublishMetadataListItemTypeEnum, PublishMetadataRequest, QueryGetDecomposedQueryRequest, QueryGetDecomposedQueryRequestNlsRequest, RecipientDetails, RecipientDetailsInput, RegionalSettingsInput, RegionalSettingsInputCurrencyFormatEnum, RegionalSettingsInputDateFormatLocaleEnum, RegionalSettingsInputNumberFormatLocaleEnum, RegionalSettingsInputUserLocaleEnum, RepoConfigObject, PromiseReportsApi as ReportsApi, RequestBody, RequestContext, RequiredError, ResetUserPasswordRequest, ResponseActivationURL, ResponseBody, ResponseContext, ResponseCopyObject, ResponseCustomAction, ResponseFailedEntities, ResponseFailedEntity, ResponseIncompleteEntities, ResponseIncompleteEntity, ResponseMessage, ResponseMessageMessageTypeEnum, ResponseMessageVisualizationTypeEnum, ResponsePostUpgradeFailedEntities, ResponsePostUpgradeFailedEntity, ResponseSchedule, ResponseScheduleRun, ResponseSuccessfulEntities, ResponseSuccessfulEntity, ResponseWorksheetToModelConversion, RevertCommitRequest, RevertCommitRequestRevertPolicyEnum, RevertResponse, RevertedMetadata, RevokeTokenRequest, RiseGQLArgWrapper, RiseSetter, Role, RoleResponse, RoleResponsePermissionEnum, RoleResponsePrivilegesEnum, PromiseRolesApi as RolesApi, RuntimeFilter, RuntimeFilters, RuntimeFiltersOperatorEnum, RuntimeParamOverride, RuntimeParameters, RuntimeSort, RuntimeSorts, RuntimeSortsOrderEnum, ScheduleHistoryRunsOptionsInput, PromiseSchedulesApi as SchedulesApi, SchedulesPdfOptionsInput, SchedulesPdfOptionsInputPageSizeEnum, SchemaObject, Scope, SearchCalendarsRequest, SearchCalendarsRequestSortOptions, SearchCalendarsRequestSortOptionsFieldNameEnum, SearchCalendarsRequestSortOptionsOrderEnum, SearchCommitsRequest, SearchCommitsRequestMetadataTypeEnum, SearchConfigRequest, SearchConnectionRequest, SearchConnectionRequestAuthenticationTypeEnum, SearchConnectionRequestDataWarehouseObjectTypeEnum, SearchConnectionRequestDataWarehouseTypesEnum, SearchConnectionRequestSortOptions, SearchConnectionRequestSortOptionsFieldNameEnum, SearchConnectionRequestSortOptionsOrderEnum, SearchConnectionResponse, SearchConnectionResponseDataWarehouseTypeEnum, SearchCustomActionsRequest, SearchCustomActionsRequestDefaultActionConfig, SearchCustomActionsRequestTypeEnum, SearchDataRequest, SearchDataRequestDataFormatEnum, SearchDataResponse, SearchEmailCustomizationRequest, SearchMetadataRequest, SearchMetadataRequestDependentObjectVersionEnum, SearchMetadataRequestFavoriteObjectOptions, SearchMetadataRequestLiveboardResponseVersionEnum, SearchMetadataRequestSortOptions, SearchMetadataRequestSortOptionsFieldNameEnum, SearchMetadataRequestSortOptionsOrderEnum, SearchOrgsRequest, SearchOrgsRequestStatusEnum, SearchOrgsRequestVisibilityEnum, SearchRoleResponse, SearchRoleResponsePermissionEnum, SearchRoleResponsePrivilegesEnum, SearchRolesRequest, SearchRolesRequestPermissionsEnum, SearchRolesRequestPrivilegesEnum, SearchSchedulesRequest, SearchSchedulesRequestHistoryRunsOptions, SearchSchedulesRequestSortOptions, SearchTagsRequest, SearchUserGroupsRequest, SearchUserGroupsRequestPrivilegesEnum, SearchUserGroupsRequestSortOptions, SearchUserGroupsRequestSortOptionsFieldNameEnum, SearchUserGroupsRequestSortOptionsOrderEnum, SearchUserGroupsRequestTypeEnum, SearchUserGroupsRequestVisibilityEnum, SearchUsersRequest, SearchUsersRequestAccountStatusEnum, SearchUsersRequestAccountTypeEnum, SearchUsersRequestPrivilegesEnum, SearchUsersRequestSortOptions, SearchUsersRequestSortOptionsFieldNameEnum, SearchUsersRequestSortOptionsOrderEnum, SearchUsersRequestVisibilityEnum, SearchVariablesRequest, SearchVariablesRequestOutputFormatEnum, PromiseSecurityApi as SecurityApi, SecurityAuthentication, SelfDecodingBody, SendMessageRequest, ServerConfiguration, ShareMetadataRequest, ShareMetadataRequestMetadataTypeEnum, ShareMetadataTypeInput, ShareMetadataTypeInputTypeEnum, SharePermissionsInput, SharePermissionsInputShareModeEnum, SingleAnswerRequest, SortOption, SortOptionFieldNameEnum, SortOptionInput, SortOptionInputFieldNameEnum, SortOptionInputOrderEnum, SortOptionOrderEnum, SortOptions, SortOptionsFieldNameEnum, SortOptionsOrderEnum, SortingOptions, SqlQuery, SqlQueryResponse, SqlQueryResponseMetadataTypeEnum, PromiseSystemApi as SystemApi, SystemConfig, SystemInfo, SystemOverrideInfo, Table, Tag, TagMetadataTypeInput, TagMetadataTypeInputTypeEnum, PromiseTagsApi as TagsApi, TemplatePropertiesInputCreate, PromiseThoughtSpotRestApi as ThoughtSpotRestApi, Token, TokenAccessScopeObject, TokenAccessScopeObjectTypeEnum, TokenProvider, TokenValidationResponse, URL, URLInput, URLInputMandatory, UnparameterizeMetadataRequest, UnparameterizeMetadataRequestFieldTypeEnum, UnparameterizeMetadataRequestMetadataTypeEnum, UnpublishMetadataRequest, UpdateCalendarRequest, UpdateCalendarRequestCalendarTypeEnum, UpdateCalendarRequestMonthOffsetEnum, UpdateCalendarRequestStartDayOfWeekEnum, UpdateCalendarRequestTableReference, UpdateCalendarRequestUpdateMethodEnum, UpdateColumnSecurityRulesRequest, UpdateConfigRequest, UpdateConnectionConfigurationRequest, UpdateConnectionConfigurationRequestAuthenticationTypeEnum, UpdateConnectionConfigurationRequestPolicyProcessesEnum, UpdateConnectionConfigurationRequestPolicyTypeEnum, UpdateConnectionRequest, UpdateConnectionV2Request, UpdateCustomActionRequest, UpdateCustomActionRequestActionDetails, UpdateCustomActionRequestDefaultActionConfig, UpdateCustomActionRequestOperationEnum, UpdateEmailCustomizationRequest, UpdateMetadataHeaderRequest, UpdateMetadataObjIdRequest, UpdateObjIdInput, UpdateObjIdInputTypeEnum, UpdateOrgRequest, UpdateOrgRequestOperationEnum, UpdateRoleRequest, UpdateRoleRequestPrivilegesEnum, UpdateScheduleRequest, UpdateScheduleRequestFileFormatEnum, UpdateScheduleRequestFrequency, UpdateScheduleRequestLiveboardOptions, UpdateScheduleRequestMetadataTypeEnum, UpdateScheduleRequestPdfOptions, UpdateScheduleRequestPdfOptionsPageSizeEnum, UpdateScheduleRequestRecipientDetails, UpdateScheduleRequestStatusEnum, UpdateScheduleRequestTimeZoneEnum, UpdateSystemConfigRequest, UpdateTagRequest, UpdateUserGroupRequest, UpdateUserGroupRequestOperationEnum, UpdateUserGroupRequestPrivilegesEnum, UpdateUserGroupRequestTypeEnum, UpdateUserGroupRequestVisibilityEnum, UpdateUserRequest, UpdateUserRequestAccountStatusEnum, UpdateUserRequestAccountTypeEnum, UpdateUserRequestOperationEnum, UpdateUserRequestPreferredLocaleEnum, UpdateUserRequestVisibilityEnum, UpdateVariableRequest, UpdateVariableRequestOperationEnum, UpdateVariableValuesRequest, UpdateVariableValuesRequestOperationEnum, User, UserAccountStatusEnum, UserAccountTypeEnum, UserGroup, UserGroupResponse, UserGroupResponseParentTypeEnum, UserGroupResponseTypeEnum, UserGroupResponseVisibilityEnum, UserInfo, UserObject, UserObjectTypeEnum, UserParameterOptions, UserParentTypeEnum, UserPrincipal, UserVisibilityEnum, PromiseUsersApi as UsersApi, ValidateMergeRequest, ValidateTokenRequest, Variable, PromiseVariableApi as VariableApi, VariableDetailInput, VariableDetailInputTypeEnum, VariableValue, VariableValueInput, VariableValuePrincipalTypeEnum, VariableVariableTypeEnum, PromiseVersionControlApi as VersionControlApi, configureAuthMethods, createBasicConfig, createBearerAuthenticationConfig, createConfiguration, server1, servers, wrapHttpLibrary }; +export { PromiseAIApi as AIApi, AIContext, APIKey, APIKeyInput, AccessToken, ActionConfig, ActionConfigInput, ActionConfigInputCreate, ActionConfigInputCreatePositionEnum, ActionConfigInputPositionEnum, ActionDetails, ActionDetailsInput, ActionDetailsInputCreate, ActivateUserRequest, AgentConversation, AnswerContent, AnswerContextInput, AnswerDataResponse, ApiException, ApiKeyConfiguration, AssignChangeAuthorRequest, AssignTagRequest, AssociateMetadataInput, AssociateMetadataInputCreate, AssociateMetadataInputCreateTypeEnum, AssociateMetadataInputTypeEnum, AuthMethods, AuthMethodsConfiguration, Authentication, PromiseAuthenticationApi as AuthenticationApi, AuthenticationInput, Author, AuthorMetadataTypeInput, AuthorMetadataTypeInputTypeEnum, AuthorType, BaseServerConfiguration, BasicAuth, BasicAuthInput, BearerAuthAuthentication, CALLBACK, CALLBACKInput, CALLBACKInputMandatory, CalendarResponse, ChangeUserPasswordRequest, Column, ColumnSecurityRule, ColumnSecurityRuleColumn, ColumnSecurityRuleGroup, ColumnSecurityRuleGroupOperation, ColumnSecurityRuleGroupOperationOperationEnum, ColumnSecurityRuleResponse, ColumnSecurityRuleSourceTable, ColumnSecurityRuleTableInput, ColumnSecurityRuleUpdate, CommitBranchRequest, CommitFileType, CommitHistoryResponse, CommitResponse, CommiterType, CommunicationChannelPreferencesResponse, Configuration, ConfigureCommunicationChannelPreferencesRequest, ConnectionConfigurationResponse, ConnectionConfigurationResponseDataWarehouseTypeEnum, ConnectionConfigurationResponsePolicyProcessesEnum, ConnectionConfigurationResponsePolicyTypeEnum, ConnectionConfigurationSearchRequest, ConnectionConfigurationSearchRequestPolicyTypeEnum, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, ConnectionInput, PromiseConnectionsApi as ConnectionsApi, ContextPayloadV2Input, ContextPayloadV2InputTypeEnum, Conversation, ConversationSettingsInput, ConvertWorksheetToModelRequest, CopyObjectRequest, CopyObjectRequestTypeEnum, CreateAgentConversationRequest, CreateAgentConversationRequestConversationSettings, CreateAgentConversationRequestMetadataContext, CreateAgentConversationRequestMetadataContextTypeEnum, CreateCalendarRequest, CreateCalendarRequestCalendarTypeEnum, CreateCalendarRequestCreationMethodEnum, CreateCalendarRequestMonthOffsetEnum, CreateCalendarRequestStartDayOfWeekEnum, CreateCalendarRequestTableReference, CreateConfigRequest, CreateConnectionConfigurationRequest, CreateConnectionConfigurationRequestAuthenticationTypeEnum, CreateConnectionConfigurationRequestPolicyProcessesEnum, CreateConnectionConfigurationRequestPolicyTypeEnum, CreateConnectionRequest, CreateConnectionRequestDataWarehouseTypeEnum, CreateConnectionResponse, CreateConnectionResponseDataWarehouseTypeEnum, CreateConversationRequest, CreateCustomActionRequest, CreateCustomActionRequestActionDetails, CreateCustomActionRequestDefaultActionConfig, CreateEmailCustomizationRequest, CreateEmailCustomizationRequestTemplateProperties, CreateEmailCustomizationResponse, CreateOrgRequest, CreateRoleRequest, CreateRoleRequestPrivilegesEnum, CreateScheduleRequest, CreateScheduleRequestFileFormatEnum, CreateScheduleRequestFrequency, CreateScheduleRequestLiveboardOptions, CreateScheduleRequestMetadataTypeEnum, CreateScheduleRequestPdfOptions, CreateScheduleRequestPdfOptionsPageSizeEnum, CreateScheduleRequestRecipientDetails, CreateScheduleRequestTimeZoneEnum, CreateTagRequest, CreateUserGroupRequest, CreateUserGroupRequestPrivilegesEnum, CreateUserGroupRequestTypeEnum, CreateUserGroupRequestVisibilityEnum, CreateUserRequest, CreateUserRequestAccountStatusEnum, CreateUserRequestAccountTypeEnum, CreateUserRequestPreferredLocaleEnum, CreateUserRequestVisibilityEnum, CreateVariableRequest, CreateVariableRequestDataTypeEnum, CreateVariableRequestTypeEnum, CreateWebhookConfigurationRequest, CreateWebhookConfigurationRequestAuthentication, CreateWebhookConfigurationRequestEventsEnum, CreateWebhookConfigurationRequestSignatureVerification, CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum, CreateWebhookConfigurationRequestSignatureVerificationTypeEnum, CronExpression, CronExpressionInput, PromiseCustomActionApi as CustomActionApi, CustomActionMetadataTypeInput, CustomActionMetadataTypeInputTypeEnum, PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, DataSource, DataSourceContextInput, DataWarehouseObjectInput, DataWarehouseObjects, Database, DbtSearchResponse, DeactivateUserRequest, DefaultActionConfig, DefaultActionConfigInput, DefaultActionConfigInputCreate, DefaultActionConfigSearchInput, DeleteConfigRequest, DeleteConnectionConfigurationRequest, DeleteConnectionRequest, DeleteMetadataRequest, DeleteMetadataTypeInput, DeleteMetadataTypeInputTypeEnum, DeleteOrgEmailCustomizationRequest, DeleteWebhookConfigurationsRequest, DeployCommitRequest, DeployCommitRequestDeployPolicyEnum, DeployCommitRequestDeployTypeEnum, DeployResponse, PromiseEmailCustomizationApi as EmailCustomizationApi, EntityHeader, ErrorResponse, EurekaDataSourceSuggestionResponse, EurekaDecomposeQueryResponse, EurekaGetNLInstructionsResponse, EurekaGetRelevantQuestionsResponse, EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery, EurekaRelevantQuestion, EurekaSetNLInstructionsResponse, EventChannelConfig, EventChannelConfigChannelsEnum, EventChannelConfigEventTypeEnum, EventChannelConfigInput, EventChannelConfigInputChannelsEnum, EventChannelConfigInputEventTypeEnum, ExcludeMetadataListItemInput, ExcludeMetadataListItemInputTypeEnum, ExportAnswerReportRequest, ExportAnswerReportRequestFileFormatEnum, ExportAnswerReportRequestRegionalSettings, ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum, ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsUserLocaleEnum, ExportLiveboardReportRequest, ExportLiveboardReportRequestFileFormatEnum, ExportLiveboardReportRequestPdfOptions, ExportLiveboardReportRequestPdfOptionsPageOrientationEnum, ExportLiveboardReportRequestPngOptions, ExportMetadataTMLBatchedRequest, ExportMetadataTMLBatchedRequestEdocFormatEnum, ExportMetadataTMLBatchedRequestMetadataTypeEnum, ExportMetadataTMLRequest, ExportMetadataTMLRequestEdocFormatEnum, ExportMetadataTMLRequestExportOptions, ExportMetadataTMLRequestExportSchemaVersionEnum, ExportMetadataTypeInput, ExportMetadataTypeInputTypeEnum, ExportOptions, ExternalTableInput, FavoriteMetadataInput, FavoriteMetadataInputTypeEnum, FavoriteMetadataItem, FavoriteMetadataItemTypeEnum, FavoriteObjectOptionsInput, FetchAnswerDataRequest, FetchAnswerDataRequestDataFormatEnum, FetchAnswerSqlQueryRequest, FetchAsyncImportTaskStatusRequest, FetchAsyncImportTaskStatusRequestTaskStatusEnum, FetchColumnSecurityRulesRequest, FetchConnectionDiffStatusResponse, FetchLiveboardDataRequest, FetchLiveboardDataRequestDataFormatEnum, FetchLiveboardSqlQueryRequest, FetchLogsRequest, FetchLogsRequestLogTypeEnum, FetchPermissionsOfPrincipalsRequest, FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum, FetchPermissionsOnMetadataRequest, FilterRules, FilterRulesOperatorEnum, ForceLogoutUsersRequest, Frequency, FrequencyInput, GenerateCSVRequest, GenerateCSVRequestCalendarTypeEnum, GenerateCSVRequestMonthOffsetEnum, GenerateCSVRequestStartDayOfWeekEnum, GenericInfo, GetAsyncImportStatusResponse, GetCustomAccessTokenRequest, GetCustomAccessTokenRequestPersistOptionEnum, GetDataSourceSuggestionsRequest, GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters, GetNLInstructionsRequest, GetObjectAccessTokenRequest, GetRelevantQuestionsRequest, GetRelevantQuestionsRequestAiContext, GetRelevantQuestionsRequestMetadataContext, GetTokenResponse, GroupObject, PromiseGroupsApi as GroupsApi, GroupsImportListInput, GroupsImportListInputPrivilegesEnum, GroupsImportListInputTypeEnum, GroupsImportListInputVisibilityEnum, HeaderAttributeInput, HeaderUpdateInput, HeaderUpdateInputTypeEnum, HttpBasicConfiguration, HttpBearerConfiguration, HttpException, HttpFile, HttpLibrary, HttpMethod, ImportEPackAsyncTaskStatus, ImportEPackAsyncTaskStatusImportPolicyEnum, ImportEPackAsyncTaskStatusTaskStatusEnum, ImportMetadataTMLAsyncRequest, ImportMetadataTMLAsyncRequestImportPolicyEnum, ImportMetadataTMLRequest, ImportMetadataTMLRequestImportPolicyEnum, ImportUser, ImportUserAccountStatusEnum, ImportUserAccountTypeEnum, ImportUserGroupsRequest, ImportUserGroupsResponse, ImportUserType, ImportUserVisibilityEnum, ImportUsersRequest, ImportUsersResponse, InputEurekaNLSRequest, IsomorphicFetchHttpLibrary, JWTMetadataObject, JWTMetadataObjectTypeEnum, JWTParameter, JWTUserOptions, JWTUserOptionsFull, LBContextInput, LiveboardContent, LiveboardDataResponse, LiveboardOptions, LiveboardOptionsInput, PromiseLogApi as LogApi, LogResponse, LoginRequest, PromiseMetadataApi as MetadataApi, MetadataAssociationItem, MetadataContext, MetadataInput, MetadataInputTypeEnum, MetadataListItemInput, MetadataListItemInputSubtypesEnum, MetadataListItemInputTypeEnum, MetadataObject, MetadataObjectTypeEnum, MetadataResponse, MetadataResponseTypeEnum, MetadataSearchResponse, MetadataSearchResponseMetadataTypeEnum, MetadataSearchSortOptions, MetadataSearchSortOptionsFieldNameEnum, MetadataSearchSortOptionsOrderEnum, PromiseMiddleware as Middleware, ModelTableList, NLInstructionsInfo, NLInstructionsInfoInput, NLInstructionsInfoInputScopeEnum, NLInstructionsInfoScopeEnum, OAuth2Configuration, ObjectIDAndName, Org, OrgChannelConfigInput, OrgChannelConfigInputOperationEnum, OrgChannelConfigInputResetEventsEnum, OrgChannelConfigResponse, OrgDetails, OrgInfo, OrgPreferenceSearchCriteriaInput, OrgPreferenceSearchCriteriaInputEventTypesEnum, OrgResponse, OrgResponseStatusEnum, OrgResponseVisibilityEnum, OrgType, PromiseOrgsApi as OrgsApi, ParameterValues, ParameterizeMetadataRequest, ParameterizeMetadataRequestFieldTypeEnum, ParameterizeMetadataRequestMetadataTypeEnum, ParametersListItem, ParametersListItemInput, PdfOptions, PdfOptionsInput, PdfOptionsInputPageOrientationEnum, PdfOptionsPageSizeEnum, PermissionInput, PermissionInputShareModeEnum, PermissionOfMetadataResponse, PermissionOfPrincipalsResponse, PermissionsMetadataTypeInput, PermissionsMetadataTypeInputTypeEnum, PngOptionsInput, PrincipalsInput, PrincipalsInputTypeEnum, PrincipalsListItem, PrincipalsListItemInput, PromiseHttpLibrary, PublishMetadataListItem, PublishMetadataListItemTypeEnum, PublishMetadataRequest, QueryGetDecomposedQueryRequest, QueryGetDecomposedQueryRequestNlsRequest, RecipientDetails, RecipientDetailsInput, RegionalSettingsInput, RegionalSettingsInputCurrencyFormatEnum, RegionalSettingsInputDateFormatLocaleEnum, RegionalSettingsInputNumberFormatLocaleEnum, RegionalSettingsInputUserLocaleEnum, RepoConfigObject, PromiseReportsApi as ReportsApi, RequestBody, RequestContext, RequiredError, ResetUserPasswordRequest, ResponseActivationURL, ResponseBody, ResponseContext, ResponseCopyObject, ResponseCustomAction, ResponseFailedEntities, ResponseFailedEntity, ResponseIncompleteEntities, ResponseIncompleteEntity, ResponseMessage, ResponseMessageMessageTypeEnum, ResponseMessageVisualizationTypeEnum, ResponsePostUpgradeFailedEntities, ResponsePostUpgradeFailedEntity, ResponseSchedule, ResponseScheduleRun, ResponseSuccessfulEntities, ResponseSuccessfulEntity, ResponseWorksheetToModelConversion, RevertCommitRequest, RevertCommitRequestRevertPolicyEnum, RevertResponse, RevertedMetadata, RevokeTokenRequest, RiseGQLArgWrapper, RiseSetter, Role, RoleResponse, RoleResponsePermissionEnum, RoleResponsePrivilegesEnum, PromiseRolesApi as RolesApi, RuntimeFilter, RuntimeFilters, RuntimeFiltersOperatorEnum, RuntimeParamOverride, RuntimeParameters, RuntimeSort, RuntimeSorts, RuntimeSortsOrderEnum, ScheduleHistoryRunsOptionsInput, PromiseSchedulesApi as SchedulesApi, SchedulesPdfOptionsInput, SchedulesPdfOptionsInputPageSizeEnum, SchemaObject, Scope, SearchCalendarsRequest, SearchCalendarsRequestSortOptions, SearchCalendarsRequestSortOptionsFieldNameEnum, SearchCalendarsRequestSortOptionsOrderEnum, SearchCommitsRequest, SearchCommitsRequestMetadataTypeEnum, SearchCommunicationChannelPreferencesRequest, SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum, SearchConfigRequest, SearchConnectionRequest, SearchConnectionRequestAuthenticationTypeEnum, SearchConnectionRequestDataWarehouseObjectTypeEnum, SearchConnectionRequestDataWarehouseTypesEnum, SearchConnectionRequestSortOptions, SearchConnectionRequestSortOptionsFieldNameEnum, SearchConnectionRequestSortOptionsOrderEnum, SearchConnectionResponse, SearchConnectionResponseDataWarehouseTypeEnum, SearchCustomActionsRequest, SearchCustomActionsRequestDefaultActionConfig, SearchCustomActionsRequestTypeEnum, SearchDataRequest, SearchDataRequestDataFormatEnum, SearchDataResponse, SearchEmailCustomizationRequest, SearchMetadataRequest, SearchMetadataRequestDependentObjectVersionEnum, SearchMetadataRequestFavoriteObjectOptions, SearchMetadataRequestLiveboardResponseVersionEnum, SearchMetadataRequestSortOptions, SearchMetadataRequestSortOptionsFieldNameEnum, SearchMetadataRequestSortOptionsOrderEnum, SearchOrgsRequest, SearchOrgsRequestStatusEnum, SearchOrgsRequestVisibilityEnum, SearchRoleResponse, SearchRoleResponsePermissionEnum, SearchRoleResponsePrivilegesEnum, SearchRolesRequest, SearchRolesRequestPermissionsEnum, SearchRolesRequestPrivilegesEnum, SearchSchedulesRequest, SearchSchedulesRequestHistoryRunsOptions, SearchSchedulesRequestSortOptions, SearchTagsRequest, SearchUserGroupsRequest, SearchUserGroupsRequestPrivilegesEnum, SearchUserGroupsRequestSortOptions, SearchUserGroupsRequestSortOptionsFieldNameEnum, SearchUserGroupsRequestSortOptionsOrderEnum, SearchUserGroupsRequestTypeEnum, SearchUserGroupsRequestVisibilityEnum, SearchUsersRequest, SearchUsersRequestAccountStatusEnum, SearchUsersRequestAccountTypeEnum, SearchUsersRequestPrivilegesEnum, SearchUsersRequestSortOptions, SearchUsersRequestSortOptionsFieldNameEnum, SearchUsersRequestSortOptionsOrderEnum, SearchUsersRequestVisibilityEnum, SearchVariablesRequest, SearchVariablesRequestResponseContentEnum, SearchWebhookConfigurationsRequest, SearchWebhookConfigurationsRequestEventTypeEnum, SearchWebhookConfigurationsRequestSortOptions, SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum, SearchWebhookConfigurationsRequestSortOptionsOrderEnum, PromiseSecurityApi as SecurityApi, SecurityAuthentication, SelfDecodingBody, SendAgentMessageRequest, SendAgentMessageResponse, SendAgentMessageStreamingRequest, SendMessageRequest, ServerConfiguration, SetNLInstructionsRequest, ShareMetadataRequest, ShareMetadataRequestMetadataTypeEnum, ShareMetadataTypeInput, ShareMetadataTypeInputTypeEnum, SharePermissionsInput, SharePermissionsInputShareModeEnum, SingleAnswerRequest, SortOption, SortOptionFieldNameEnum, SortOptionInput, SortOptionInputFieldNameEnum, SortOptionInputOrderEnum, SortOptionOrderEnum, SortOptions, SortOptionsFieldNameEnum, SortOptionsOrderEnum, SortingOptions, SqlQuery, SqlQueryResponse, SqlQueryResponseMetadataTypeEnum, PromiseSystemApi as SystemApi, SystemConfig, SystemInfo, SystemOverrideInfo, Table, Tag, TagMetadataTypeInput, TagMetadataTypeInputTypeEnum, PromiseTagsApi as TagsApi, TemplatePropertiesInputCreate, PromiseThoughtSpotRestApi as ThoughtSpotRestApi, Token, TokenAccessScopeObject, TokenAccessScopeObjectTypeEnum, TokenProvider, TokenValidationResponse, URL, URLInput, URLInputMandatory, UnparameterizeMetadataRequest, UnparameterizeMetadataRequestFieldTypeEnum, UnparameterizeMetadataRequestMetadataTypeEnum, UnpublishMetadataRequest, UpdateCalendarRequest, UpdateCalendarRequestCalendarTypeEnum, UpdateCalendarRequestMonthOffsetEnum, UpdateCalendarRequestStartDayOfWeekEnum, UpdateCalendarRequestTableReference, UpdateCalendarRequestUpdateMethodEnum, UpdateColumnSecurityRulesRequest, UpdateConfigRequest, UpdateConnectionConfigurationRequest, UpdateConnectionConfigurationRequestAuthenticationTypeEnum, UpdateConnectionConfigurationRequestPolicyProcessesEnum, UpdateConnectionConfigurationRequestPolicyTypeEnum, UpdateConnectionRequest, UpdateConnectionV2Request, UpdateCustomActionRequest, UpdateCustomActionRequestActionDetails, UpdateCustomActionRequestDefaultActionConfig, UpdateCustomActionRequestOperationEnum, UpdateEmailCustomizationRequest, UpdateMetadataHeaderRequest, UpdateMetadataObjIdRequest, UpdateObjIdInput, UpdateObjIdInputTypeEnum, UpdateOrgRequest, UpdateOrgRequestOperationEnum, UpdateRoleRequest, UpdateRoleRequestPrivilegesEnum, UpdateScheduleRequest, UpdateScheduleRequestFileFormatEnum, UpdateScheduleRequestFrequency, UpdateScheduleRequestLiveboardOptions, UpdateScheduleRequestMetadataTypeEnum, UpdateScheduleRequestPdfOptions, UpdateScheduleRequestPdfOptionsPageSizeEnum, UpdateScheduleRequestRecipientDetails, UpdateScheduleRequestStatusEnum, UpdateScheduleRequestTimeZoneEnum, UpdateSystemConfigRequest, UpdateTagRequest, UpdateUserGroupRequest, UpdateUserGroupRequestOperationEnum, UpdateUserGroupRequestPrivilegesEnum, UpdateUserGroupRequestTypeEnum, UpdateUserGroupRequestVisibilityEnum, UpdateUserRequest, UpdateUserRequestAccountStatusEnum, UpdateUserRequestAccountTypeEnum, UpdateUserRequestOperationEnum, UpdateUserRequestPreferredLocaleEnum, UpdateUserRequestVisibilityEnum, UpdateVariableRequest, UpdateVariableValuesRequest, UpdateWebhookConfigurationRequest, UpdateWebhookConfigurationRequestEventsEnum, User, UserAccountStatusEnum, UserAccountTypeEnum, UserGroup, UserGroupResponse, UserGroupResponseParentTypeEnum, UserGroupResponseTypeEnum, UserGroupResponseVisibilityEnum, UserInfo, UserObject, UserObjectTypeEnum, UserParameterOptions, UserParentTypeEnum, UserPrincipal, UserVisibilityEnum, PromiseUsersApi as UsersApi, ValidateMergeRequest, ValidateTokenRequest, ValueScopeInput, ValueScopeInputPrincipalTypeEnum, Variable, PromiseVariableApi as VariableApi, VariableDetailInput, VariableDetailInputTypeEnum, VariableUpdateAssignmentInput, VariableUpdateAssignmentInputOperationEnum, VariableUpdateScopeInput, VariableUpdateScopeInputPrincipalTypeEnum, VariableValue, VariableValuePrincipalTypeEnum, VariableValues, VariableVariableTypeEnum, PromiseVersionControlApi as VersionControlApi, WebhookAuthApiKey, WebhookAuthApiKeyInput, WebhookAuthBasicAuth, WebhookAuthBasicAuthInput, WebhookAuthOAuth2, WebhookAuthOAuth2Input, WebhookAuthentication, WebhookAuthenticationInput, WebhookDeleteFailure, WebhookDeleteResponse, WebhookOrg, WebhookPagination, WebhookResponse, WebhookResponseEventsEnum, WebhookSearchResponse, WebhookSignatureVerification, WebhookSignatureVerificationAlgorithmEnum, WebhookSignatureVerificationInput, WebhookSignatureVerificationInputAlgorithmEnum, WebhookSignatureVerificationInputTypeEnum, WebhookSignatureVerificationTypeEnum, WebhookSortOptionsInput, WebhookSortOptionsInputFieldNameEnum, WebhookSortOptionsInputOrderEnum, WebhookUser, PromiseWebhooksApi as WebhooksApi, configureAuthMethods, createBasicConfig, createBearerAuthenticationConfig, createConfiguration, server1, servers, wrapHttpLibrary }; diff --git a/sdks/typescript/dist/index.d.ts b/sdks/typescript/dist/index.d.ts index 2c80cc620..d2de2a686 100644 --- a/sdks/typescript/dist/index.d.ts +++ b/sdks/typescript/dist/index.d.ts @@ -181,6 +181,42 @@ type AuthMethodsConfiguration = { */ declare function configureAuthMethods(config: AuthMethodsConfiguration | undefined): AuthMethods; +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class AIContext { + /** + * User specific text instructions sent to AI system for processing the query. + */ + 'instructions'?: Array | null; + /** + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. + */ + 'content'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** * ThoughtSpot Public REST API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) @@ -1117,6 +1153,38 @@ declare class ActivateUserRequest { constructor(); } +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class AgentConversation { + /** + * Unique identifier of the conversation. + */ + 'conversation_id': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** * ThoughtSpot Public REST API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) @@ -1173,6 +1241,42 @@ declare class AnswerContent { constructor(); } +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class AnswerContextInput { + /** + * Unique identifier of the answer session. + */ + 'session_identifier': string; + /** + * Generation number of the answer. + */ + 'generation_number': number; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** * ThoughtSpot Public REST API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) @@ -1799,7 +1903,7 @@ declare class ColumnSecurityRule { * Array of groups that have access to this column */ 'groups'?: Array | null; - 'sourceTableDetails'?: ColumnSecurityRuleSourceTable; + 'source_table_details'?: ColumnSecurityRuleSourceTable; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -1869,15 +1973,15 @@ declare class ColumnSecurityRuleResponse { /** * GUID of the table for which the column security rules are fetched */ - 'guid'?: string | null; + 'table_guid'?: string | null; /** * Object ID of the table for which the column security rules are fetched */ - 'objId'?: string | null; + 'obj_id'?: string | null; /** * Array containing column security rule objects */ - 'columnSecurityRules'?: Array | null; + 'column_security_rules'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2238,10 +2342,15 @@ declare class CommitResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UserPrincipal { - 'id'?: string | null; - 'name'?: string | null; - 'type'?: string | null; +declare class EventChannelConfig { + /** + * Type of event for which communication channels are configured + */ + 'event_type': EventChannelConfigEventTypeEnum; + /** + * Communication channels enabled for this event type. Empty array indicates no channels are enabled. + */ + 'channels': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2257,6 +2366,8 @@ declare class UserPrincipal { }[]; constructor(); } +type EventChannelConfigEventTypeEnum = "LIVEBOARD_SCHEDULE"; +type EventChannelConfigChannelsEnum = "EMAIL" | "WEBHOOK"; /** * ThoughtSpot Public REST API @@ -2269,17 +2380,15 @@ declare class UserPrincipal { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ConnectionConfigurationResponse { - 'configuration_identifier'?: string | null; - 'name'?: string | null; - 'description'?: string | null; - 'configuration'?: any | null; - 'policy_principals'?: Array | null; - 'policy_processes'?: Array | null; - 'disabled'?: boolean | null; - 'data_warehouse_type'?: ConnectionConfigurationResponseDataWarehouseTypeEnum | null; - 'policy_type'?: ConnectionConfigurationResponsePolicyTypeEnum | null; +declare class OrgDetails { + /** + * Unique id of the org + */ + 'id': string; + /** + * Name of the org + */ + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2295,9 +2404,6 @@ declare class ConnectionConfigurationResponse { }[]; constructor(); } -type ConnectionConfigurationResponsePolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; -type ConnectionConfigurationResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; -type ConnectionConfigurationResponsePolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2310,19 +2416,13 @@ type ConnectionConfigurationResponsePolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ConnectionConfigurationSearchRequest { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Unique ID or name of the configuration. - */ - 'configuration_identifier'?: string; + +declare class OrgChannelConfigResponse { + 'org': OrgDetails; /** - * Type of policy. + * Event-specific communication channel configurations for this org */ - 'policy_type'?: ConnectionConfigurationSearchRequestPolicyTypeEnum; + 'preferences': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2338,7 +2438,6 @@ declare class ConnectionConfigurationSearchRequest { }[]; constructor(); } -type ConnectionConfigurationSearchRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2351,23 +2450,16 @@ type ConnectionConfigurationSearchRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIP * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DataWarehouseObjectInput { - /** - * Name of the database. - */ - 'database'?: string | null; - /** - * Name of the schema within the database. - */ - 'schema'?: string | null; + +declare class CommunicationChannelPreferencesResponse { /** - * Name of the table within the schema. + * Cluster-level default configurations. */ - 'table'?: string | null; + 'cluster_preferences'?: Array | null; /** - * Name of the column within the table. + * Org-specific configurations. */ - 'column'?: string | null; + 'org_preferences'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2395,20 +2487,15 @@ declare class DataWarehouseObjectInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ConnectionInput { - /** - * Unique ID or name of the connection. - */ - 'identifier'?: string | null; +declare class EventChannelConfigInput { /** - * A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match. + * Type of event for which communication channels are configured */ - 'name_pattern'?: string | null; + 'event_type': EventChannelConfigInputEventTypeEnum; /** - * Filter options for databases, schemas, tables and columns. + * Communication channels enabled for this event type. Empty array disables all channels for this event. */ - 'data_warehouse_objects'?: Array | null; + 'channels': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2424,6 +2511,8 @@ declare class ConnectionInput { }[]; constructor(); } +type EventChannelConfigInputEventTypeEnum = "LIVEBOARD_SCHEDULE"; +type EventChannelConfigInputChannelsEnum = "EMAIL" | "WEBHOOK"; /** * ThoughtSpot Public REST API @@ -2436,11 +2525,24 @@ declare class ConnectionInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Conversation { + +declare class OrgChannelConfigInput { /** - * Unique identifier of the conversation. + * Unique identifier or name of the org */ - 'conversation_identifier': string; + 'org_identifier': string; + /** + * Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences. + */ + 'operation'?: OrgChannelConfigInputOperationEnum | null; + /** + * Event-specific configurations. Required for REPLACE operation. + */ + 'preferences'?: Array | null; + /** + * Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences. + */ + 'reset_events'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2456,6 +2558,8 @@ declare class Conversation { }[]; constructor(); } +type OrgChannelConfigInputOperationEnum = "REPLACE" | "RESET"; +type OrgChannelConfigInputResetEventsEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -2468,23 +2572,16 @@ declare class Conversation { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ConvertWorksheetToModelRequest { - /** - * List of Worksheet IDs. - */ - 'worksheet_ids'?: Array; - /** - * List of Worksheet IDs to be excluded. - */ - 'exclude_worksheet_ids'?: Array; + +declare class ConfigureCommunicationChannelPreferencesRequest { /** - * Indicates whether all the worksheet needs to be converted to models. + * Cluster-level default configurations. */ - 'convert_all'?: boolean | null; + 'cluster_preferences'?: Array; /** - * Indicates whether the changes should be applied to database. + * Org-specific configurations. */ - 'apply_changes'?: boolean | null; + 'org_preferences'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2512,23 +2609,10 @@ declare class ConvertWorksheetToModelRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CopyObjectRequest { - /** - * Description of the new object - */ - 'description'?: string; - /** - * GUID of metadata object to be copied (answer id or liveboard id) - */ - 'identifier': string; - /** - * Type of metadata object - */ - 'type'?: CopyObjectRequestTypeEnum; - /** - * Title of the new object - */ - 'title'?: string; +declare class UserPrincipal { + 'id'?: string | null; + 'name'?: string | null; + 'type'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2544,7 +2628,6 @@ declare class CopyObjectRequest { }[]; constructor(); } -type CopyObjectRequestTypeEnum = "LIVEBOARD" | "ANSWER"; /** * ThoughtSpot Public REST API @@ -2557,26 +2640,17 @@ type CopyObjectRequestTypeEnum = "LIVEBOARD" | "ANSWER"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. The given table will be created if `creation_method` is set as `FROM_INPUT_PARAMS`. -*/ -declare class CreateCalendarRequestTableReference { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Name of the database. - */ - 'database_name'?: string | null; - /** - * Name of the schema. - */ - 'schema_name'?: string | null; - /** - * Name of the table. Table names may be case-sensitive depending on the database system. - */ - 'table_name': string; + +declare class ConnectionConfigurationResponse { + 'configuration_identifier'?: string | null; + 'name'?: string | null; + 'description'?: string | null; + 'configuration'?: any | null; + 'policy_principals'?: Array | null; + 'policy_processes'?: Array | null; + 'disabled'?: boolean | null; + 'data_warehouse_type'?: ConnectionConfigurationResponseDataWarehouseTypeEnum | null; + 'policy_type'?: ConnectionConfigurationResponsePolicyTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2592,6 +2666,9 @@ declare class CreateCalendarRequestTableReference { }[]; constructor(); } +type ConnectionConfigurationResponsePolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; +type ConnectionConfigurationResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; +type ConnectionConfigurationResponsePolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2604,45 +2681,19 @@ declare class CreateCalendarRequestTableReference { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateCalendarRequest { +declare class ConnectionConfigurationSearchRequest { /** - * Name of the custom calendar. + * Unique ID or name of the connection. */ - 'name': string; + 'connection_identifier': string; /** - * Type of create operation. + * Unique ID or name of the configuration. */ - 'creation_method': CreateCalendarRequestCreationMethodEnum; - 'table_reference': CreateCalendarRequestTableReference; + 'configuration_identifier'?: string; /** - * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. + * Type of policy. */ - 'start_date'?: string; - /** - * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. - */ - 'end_date'?: string; - /** - * Type of the calendar. - */ - 'calendar_type'?: CreateCalendarRequestCalendarTypeEnum; - /** - * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). - */ - 'month_offset'?: CreateCalendarRequestMonthOffsetEnum; - /** - * Specify the starting day of the week. - */ - 'start_day_of_week'?: CreateCalendarRequestStartDayOfWeekEnum; - /** - * Prefix to add before the quarter. - */ - 'quarter_name_prefix'?: string; - /** - * Prefix to add before the year. - */ - 'year_name_prefix'?: string; + 'policy_type'?: ConnectionConfigurationSearchRequestPolicyTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2658,10 +2709,7 @@ declare class CreateCalendarRequest { }[]; constructor(); } -type CreateCalendarRequestCreationMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; -type CreateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; -type CreateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; -type CreateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; +type ConnectionConfigurationSearchRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; /** * ThoughtSpot Public REST API @@ -2674,39 +2722,23 @@ type CreateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConfigRequest { - /** - * URL for connecting to remote repository - */ - 'repository_url': string; - /** - * Username to authenticate connection to remote repository - */ - 'username': string; - /** - * Access token corresponding to the user to authenticate connection to remote repository - */ - 'access_token': string; - /** - * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later - */ - 'org_identifier'?: string; +declare class DataWarehouseObjectInput { /** - * List the remote branches to configure. Example:[development, production] + * Name of the database. */ - 'branch_names'?: Array; + 'database'?: string | null; /** - * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + * Name of the schema within the database. */ - 'commit_branch_name'?: string; + 'schema'?: string | null; /** - * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + * Name of the table within the schema. */ - 'enable_guid_mapping'?: boolean | null; + 'table'?: string | null; /** - * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Note: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. Version: 9.7.0.cl or later + * Name of the column within the table. */ - 'configuration_branch_name'?: string; + 'column'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2734,39 +2766,20 @@ declare class CreateConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConnectionConfigurationRequest { - /** - * Unique name for the configuration. - */ - 'name': string; - /** - * Description of the configuration. - */ - 'description'?: string; + +declare class ConnectionInput { /** * Unique ID or name of the connection. */ - 'connection_identifier': string; - /** - * Type of authentication used for the connection. - */ - 'authentication_type'?: CreateConnectionConfigurationRequestAuthenticationTypeEnum; - /** - * Configuration properties in JSON. - */ - 'configuration': any; - /** - * Type of policy. - */ - 'policy_type'?: CreateConnectionConfigurationRequestPolicyTypeEnum; + 'identifier'?: string | null; /** - * Unique ID or name of the User and User Groups. + * A pattern to match case-insensitive name of the connection object. User `%` for a wildcard match. */ - 'policy_principals'?: Array; + 'name_pattern'?: string | null; /** - * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + * Filter options for databases, schemas, tables and columns. */ - 'policy_processes'?: Array; + 'data_warehouse_objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2782,9 +2795,6 @@ declare class CreateConnectionConfigurationRequest { }[]; constructor(); } -type CreateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "KEY_PAIR" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_WITH_SERVICE_PRINCIPAL"; -type CreateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; -type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; /** * ThoughtSpot Public REST API @@ -2797,27 +2807,11 @@ type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConnectionRequest { - /** - * Unique name for the connection. - */ - 'name': string; - /** - * Description of the connection. - */ - 'description'?: string; - /** - * Type of the data warehouse. - */ - 'data_warehouse_type': CreateConnectionRequestDataWarehouseTypeEnum; - /** - * Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON. - */ - 'data_warehouse_config': any; +declare class DataSourceContextInput { /** - * Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`. + * Unique identifier of the data source. */ - 'validate'?: boolean | null; + 'guid': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2833,7 +2827,6 @@ declare class CreateConnectionRequest { }[]; constructor(); } -type CreateConnectionRequestDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -2846,23 +2839,15 @@ type CreateConnectionRequestDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHI * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConnectionResponse { - /** - * ID of the connection created. - */ - 'id': string; - /** - * Name of the connection. - */ - 'name': string; +declare class LBContextInput { /** - * Type of data warehouse. + * Unique identifier of the liveboard. */ - 'data_warehouse_type': CreateConnectionResponseDataWarehouseTypeEnum; + 'liveboard_identifier': string; /** - * Details of the connection. + * Unique identifier of the visualization. */ - 'details'?: any | null; + 'visualization_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2878,7 +2863,6 @@ declare class CreateConnectionResponse { }[]; constructor(); } -type CreateConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -2891,15 +2875,15 @@ type CreateConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSH * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateConversationRequest { - /** - * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. - */ - 'metadata_identifier': string; + +declare class ContextPayloadV2Input { /** - * Token string to set the context for the conversation. For example,`[sales],[item type],[state]`. + * Type of the context. */ - 'tokens'?: string; + 'type'?: ContextPayloadV2InputTypeEnum | null; + 'answer_context'?: AnswerContextInput; + 'liveboard_context'?: LBContextInput; + 'data_source_context'?: DataSourceContextInput; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2915,6 +2899,7 @@ declare class CreateConversationRequest { }[]; constructor(); } +type ContextPayloadV2InputTypeEnum = "answer" | "liveboard" | "data_source"; /** * ThoughtSpot Public REST API @@ -2927,13 +2912,11 @@ declare class CreateConversationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required. -*/ -declare class CreateCustomActionRequestActionDetails { - 'CALLBACK'?: CALLBACKInputMandatory; - 'URL'?: URLInputMandatory; +declare class Conversation { + /** + * Unique identifier of the conversation. + */ + 'conversation_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2961,14 +2944,19 @@ declare class CreateCustomActionRequestActionDetails { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. -*/ -declare class CreateCustomActionRequestDefaultActionConfig { +declare class ConversationSettingsInput { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true + * Enable contextual change analysis. */ - 'visibility'?: boolean | null; + 'enable_contextual_change_analysis'?: boolean | null; + /** + * Enable natural language to answer generation. + */ + 'enable_natural_language_answer_generation'?: boolean | null; + /** + * Enable reasoning. + */ + 'enable_reasoning'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -2996,22 +2984,23 @@ declare class CreateCustomActionRequestDefaultActionConfig { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateCustomActionRequest { +declare class ConvertWorksheetToModelRequest { /** - * Name of the custom action. The custom action name must be unique. + * List of Worksheet IDs. */ - 'name': string; - 'action_details': CreateCustomActionRequestActionDetails; + 'worksheet_ids'?: Array; /** - * Metadata objects to which the custom action needs to be associated. + * List of Worksheet IDs to be excluded. */ - 'associate_metadata'?: Array; - 'default_action_config'?: CreateCustomActionRequestDefaultActionConfig; + 'exclude_worksheet_ids'?: Array; /** - * Unique ID or name of the groups that can view and access the custom action. + * Indicates whether all the worksheet needs to be converted to models. */ - 'group_identifiers'?: Array; + 'convert_all'?: boolean | null; + /** + * Indicates whether the changes should be applied to database. + */ + 'apply_changes'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3039,102 +3028,67 @@ declare class CreateCustomActionRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Email customization configuration as key value pair -*/ -declare class CreateEmailCustomizationRequestTemplateProperties { - /** - * Background color for call-to-action button in hex format - */ - 'cta_button_bg_color'?: string | null; - /** - * Text color for call-to-action button in hex format - */ - 'cta_text_font_color'?: string | null; - /** - * Primary background color in hex format - */ - 'primary_bg_color'?: string | null; - /** - * Home page URL (HTTP/HTTPS only) - */ - 'home_url'?: string | null; +declare class CopyObjectRequest { /** - * Logo image URL (HTTP/HTTPS only) + * Description of the new object */ - 'logo_url'?: string | null; + 'description'?: string; /** - * Font family for email content (e.g., Arial, sans-serif) + * GUID of metadata object to be copied (answer id or liveboard id) */ - 'font_family'?: string | null; + 'identifier': string; /** - * Product name to display + * Type of metadata object */ - 'product_name'?: string | null; + 'type'?: CopyObjectRequestTypeEnum; /** - * Footer address text + * Title of the new object */ - 'footer_address'?: string | null; + 'title'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type CopyObjectRequestTypeEnum = "LIVEBOARD" | "ANSWER"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Conversation settings. +*/ +declare class CreateAgentConversationRequestConversationSettings { /** - * Footer phone number + * Enable contextual change analysis. */ - 'footer_phone'?: string | null; + 'enable_contextual_change_analysis'?: boolean | null; /** - * Replacement value for Liveboard + * Enable natural language to answer generation. */ - 'replacement_value_for_liveboard'?: string | null; + 'enable_natural_language_answer_generation'?: boolean | null; /** - * Replacement value for Answer + * Enable reasoning. */ - 'replacement_value_for_answer'?: string | null; - /** - * Replacement value for SpotIQ - */ - 'replacement_value_for_spot_iq'?: string | null; - /** - * Whether to hide footer address - */ - 'hide_footer_address'?: boolean | null; - /** - * Whether to hide footer phone number - */ - 'hide_footer_phone'?: boolean | null; - /** - * Whether to hide manage notification link - */ - 'hide_manage_notification'?: boolean | null; - /** - * Whether to hide mobile app nudge - */ - 'hide_mobile_app_nudge'?: boolean | null; - /** - * Whether to hide privacy policy link - */ - 'hide_privacy_policy'?: boolean | null; - /** - * Whether to hide product name - */ - 'hide_product_name'?: boolean | null; - /** - * Whether to hide ThoughtSpot vocabulary definitions - */ - 'hide_ts_vocabulary_definitions'?: boolean | null; - /** - * Whether to hide notification status - */ - 'hide_notification_status'?: boolean | null; - /** - * Whether to hide error message - */ - 'hide_error_message'?: boolean | null; - /** - * Whether to hide unsubscribe link - */ - 'hide_unsubscribe_link'?: boolean | null; - /** - * Whether to hide modify alert - */ - 'hide_modify_alert'?: boolean | null; + 'enable_reasoning'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3163,12 +3117,17 @@ declare class CreateEmailCustomizationRequestTemplateProperties { * Do not edit the class manually. */ -declare class CreateEmailCustomizationRequest { - 'template_properties': CreateEmailCustomizationRequestTemplateProperties; +/** +* Context for the conversation. +*/ +declare class CreateAgentConversationRequestMetadataContext { /** - * Unique ID or name of org Version: 10.12.0.cl or later + * Type of the context. */ - 'org_identifier'?: string; + 'type'?: CreateAgentConversationRequestMetadataContextTypeEnum | null; + 'answer_context'?: AnswerContextInput; + 'liveboard_context'?: LBContextInput; + 'data_source_context'?: DataSourceContextInput; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3184,6 +3143,7 @@ declare class CreateEmailCustomizationRequest { }[]; constructor(); } +type CreateAgentConversationRequestMetadataContextTypeEnum = "answer" | "liveboard" | "data_source"; /** * ThoughtSpot Public REST API @@ -3196,9 +3156,10 @@ declare class CreateEmailCustomizationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class OrgType { - 'name'?: string | null; - 'id'?: number | null; + +declare class CreateAgentConversationRequest { + 'metadata_context': CreateAgentConversationRequestMetadataContext; + 'conversation_settings': CreateAgentConversationRequestConversationSettings; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3226,21 +3187,26 @@ declare class OrgType { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateEmailCustomizationResponse { +/** +* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. The given table will be created if `creation_method` is set as `FROM_INPUT_PARAMS`. +*/ +declare class CreateCalendarRequestTableReference { /** - * Tenant ID + * Unique ID or name of the connection. */ - 'tenant_id': string; - 'org': OrgType; + 'connection_identifier': string; /** - * Email customization name. + * Name of the database. */ - 'name': string; + 'database_name'?: string | null; /** - * Customization configuration for the email + * Name of the schema. */ - 'template_properties': any; + 'schema_name'?: string | null; + /** + * Name of the table. Table names may be case-sensitive depending on the database system. + */ + 'table_name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3268,15 +3234,45 @@ declare class CreateEmailCustomizationResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateOrgRequest { + +declare class CreateCalendarRequest { /** - * Name of the Org. + * Name of the custom calendar. */ 'name': string; /** - * Description of the Org. + * Type of create operation. */ - 'description'?: string; + 'creation_method': CreateCalendarRequestCreationMethodEnum; + 'table_reference': CreateCalendarRequestTableReference; + /** + * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. + */ + 'start_date'?: string; + /** + * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `creation_method` is set as `FROM_INPUT_PARAMS`. + */ + 'end_date'?: string; + /** + * Type of the calendar. + */ + 'calendar_type'?: CreateCalendarRequestCalendarTypeEnum; + /** + * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). + */ + 'month_offset'?: CreateCalendarRequestMonthOffsetEnum; + /** + * Specify the starting day of the week. + */ + 'start_day_of_week'?: CreateCalendarRequestStartDayOfWeekEnum; + /** + * Prefix to add before the quarter. + */ + 'quarter_name_prefix'?: string; + /** + * Prefix to add before the year. + */ + 'year_name_prefix'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3292,6 +3288,10 @@ declare class CreateOrgRequest { }[]; constructor(); } +type CreateCalendarRequestCreationMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; +type CreateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; +type CreateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; +type CreateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; /** * ThoughtSpot Public REST API @@ -3304,23 +3304,39 @@ declare class CreateOrgRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateRoleRequest { +declare class CreateConfigRequest { /** - * Unique name of the Role. + * URL for connecting to remote repository */ - 'name': string; + 'repository_url': string; /** - * Description of the Role. + * Username to authenticate connection to remote repository */ - 'description'?: string; + 'username': string; /** - * Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. + * Access token corresponding to the user to authenticate connection to remote repository */ - 'privileges'?: Array; + 'access_token': string; /** - *
Version: 10.5.0.cl or later
Indicates whether the role is read only. A readonly role can neither be updated nor deleted. + * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later */ - 'read_only'?: boolean | null; + 'org_identifier'?: string; + /** + * List the remote branches to configure. Example:[development, production] + */ + 'branch_names'?: Array; + /** + * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + */ + 'commit_branch_name'?: string; + /** + * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + */ + 'enable_guid_mapping'?: boolean | null; + /** + * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Note: If no branch name is specified, then by default, ts_config_files branch is considered. Ensure this branch exists before configuration. Version: 9.7.0.cl or later + */ + 'configuration_branch_name'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3336,7 +3352,6 @@ declare class CreateRoleRequest { }[]; constructor(); } -type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE"; /** * ThoughtSpot Public REST API @@ -3349,34 +3364,39 @@ type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Schedule selected cron expression. -*/ -declare class CronExpressionInput { +declare class CreateConnectionConfigurationRequest { /** - * Day of month of the object. + * Unique name for the configuration. */ - 'day_of_month': string; + 'name': string; /** - * Day of Week of the object. + * Description of the configuration. */ - 'day_of_week': string; + 'description'?: string; /** - * Hour of the object. + * Unique ID or name of the connection. */ - 'hour': string; + 'connection_identifier': string; /** - * Minute of the object. + * Type of authentication used for the connection. */ - 'minute': string; + 'authentication_type'?: CreateConnectionConfigurationRequestAuthenticationTypeEnum; /** - * Month of the object. + * Configuration properties in JSON. */ - 'month': string; + 'configuration': any; /** - * Second of the object. + * Type of policy. */ - 'second': string; + 'policy_type'?: CreateConnectionConfigurationRequestPolicyTypeEnum; + /** + * Unique ID or name of the User and User Groups. + */ + 'policy_principals'?: Array; + /** + * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + */ + 'policy_processes'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3392,6 +3412,9 @@ declare class CronExpressionInput { }[]; constructor(); } +type CreateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "KEY_PAIR" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "OAUTH_CLIENT_CREDENTIALS"; +type CreateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; +type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; /** * ThoughtSpot Public REST API @@ -3404,12 +3427,27 @@ declare class CronExpressionInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Frequency settings for the scheduled job. -*/ -declare class CreateScheduleRequestFrequency { - 'cron_expression': CronExpressionInput; +declare class CreateConnectionRequest { + /** + * Unique name for the connection. + */ + 'name': string; + /** + * Description of the connection. + */ + 'description'?: string; + /** + * Type of the data warehouse. + */ + 'data_warehouse_type': CreateConnectionRequestDataWarehouseTypeEnum; + /** + * Connection configuration attributes in JSON format. To create a connection with tables, include table attributes. See the documentation above for sample JSON. + */ + 'data_warehouse_config': any; + /** + * Validates the connection metadata if tables are included. If you are creating a connection without tables, specify `false`. + */ + 'validate'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3425,6 +3463,7 @@ declare class CreateScheduleRequestFrequency { }[]; constructor(); } +type CreateConnectionRequestDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -3437,14 +3476,23 @@ declare class CreateScheduleRequestFrequency { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options to specify details of Liveboard. -*/ -declare class CreateScheduleRequestLiveboardOptions { +declare class CreateConnectionResponse { /** - * Unique ID or name of visualizations. + * ID of the connection created. */ - 'visualization_identifiers': Array; + 'id': string; + /** + * Name of the connection. + */ + 'name': string; + /** + * Type of data warehouse. + */ + 'data_warehouse_type': CreateConnectionResponseDataWarehouseTypeEnum; + /** + * Details of the connection. + */ + 'details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3460,6 +3508,7 @@ declare class CreateScheduleRequestLiveboardOptions { }[]; constructor(); } +type CreateConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -3472,46 +3521,15 @@ declare class CreateScheduleRequestLiveboardOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`. -*/ -declare class CreateScheduleRequestPdfOptions { +declare class CreateConversationRequest { /** - * Indicates whether to include complete Liveboard. + * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. */ - 'complete_liveboard'?: boolean | null; + 'metadata_identifier': string; /** - * Indicates whether to include cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page - */ - 'include_page_number'?: boolean | null; - /** - * Text to include in the footer of each page. - */ - 'page_footer_text'?: string | null; - /** - * Page orientation of the PDF. - */ - 'page_orientation'?: string | null; - /** - * Page size. - */ - 'page_size'?: CreateScheduleRequestPdfOptionsPageSizeEnum | null; - /** - * Indicates whether to include only first page of the tables. + * Token string to set the context for the conversation. For example,`[sales],[item type],[state]`. */ - 'truncate_table'?: boolean | null; + 'tokens'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3527,7 +3545,6 @@ declare class CreateScheduleRequestPdfOptions { }[]; constructor(); } -type CreateScheduleRequestPdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -3540,15 +3557,13 @@ type CreateScheduleRequestPdfOptionsPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PrincipalsListItemInput { - /** - * Unique ID or name of the user or group. - */ - 'identifier': string; - /** - * Principal type. - */ - 'type': string; + +/** +* Action details includes `Type` and Configuration data for Custom Actions, either Callback or URL is required. +*/ +declare class CreateCustomActionRequestActionDetails { + 'CALLBACK'?: CALLBACKInputMandatory; + 'URL'?: URLInputMandatory; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3576,19 +3591,14 @@ declare class PrincipalsListItemInput { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Recipients of the scheduled job notifications. Add the GUID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. +* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. */ -declare class CreateScheduleRequestRecipientDetails { - /** - * Emails of the recipients. - */ - 'emails'?: Array | null; +declare class CreateCustomActionRequestDefaultActionConfig { /** - * User or groups to be set as recipients of the schedule notifications. + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true */ - 'principals'?: Array | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3617,39 +3627,21 @@ declare class CreateScheduleRequestRecipientDetails { * Do not edit the class manually. */ -declare class CreateScheduleRequest { +declare class CreateCustomActionRequest { /** - * Name of the scheduled job. + * Name of the custom action. The custom action name must be unique. */ 'name': string; + 'action_details': CreateCustomActionRequestActionDetails; /** - * Description of the job. - */ - 'description': string; - /** - * Type of the metadata object. - */ - 'metadata_type': CreateScheduleRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object. - */ - 'metadata_identifier': string; - /** - * Export file format. - */ - 'file_format'?: CreateScheduleRequestFileFormatEnum; - 'liveboard_options'?: CreateScheduleRequestLiveboardOptions; - 'pdf_options'?: CreateScheduleRequestPdfOptions; - /** - * Time zone + * Metadata objects to which the custom action needs to be associated. */ - 'time_zone': CreateScheduleRequestTimeZoneEnum; - 'frequency'?: CreateScheduleRequestFrequency; - 'recipient_details': CreateScheduleRequestRecipientDetails; + 'associate_metadata'?: Array; + 'default_action_config'?: CreateCustomActionRequestDefaultActionConfig; /** - * Personalised view id of the liveboard to be scheduled. + * Unique ID or name of the groups that can view and access the custom action. */ - 'personalised_view_id'?: string; + 'group_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3665,9 +3657,6 @@ declare class CreateScheduleRequest { }[]; constructor(); } -type CreateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; -type CreateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; -type CreateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; /** * ThoughtSpot Public REST API @@ -3680,83 +3669,110 @@ type CreateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Af * https://openapi-generator.tech * Do not edit the class manually. */ -declare class CreateTagRequest { +/** +* Email customization configuration as key value pair +*/ +declare class CreateEmailCustomizationRequestTemplateProperties { /** - * Name of the tag. + * Background color for call-to-action button in hex format */ - 'name': string; + 'cta_button_bg_color'?: string | null; /** - * Hex color code to be assigned to the tag. For example, #ff78a9. + * Text color for call-to-action button in hex format */ - 'color'?: string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} - -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class CreateUserGroupRequest { + 'cta_text_font_color'?: string | null; /** - * Name of the group. The group name must be unique. + * Primary background color in hex format */ - 'name': string; + 'primary_bg_color'?: string | null; /** - * Display name for the group. + * Home page URL (HTTP/HTTPS only) */ - 'display_name': string; + 'home_url'?: string | null; /** - * GUID of the Liveboards to assign as default Liveboards to the users in the group. + * Logo image URL (HTTP/HTTPS only) */ - 'default_liveboard_identifiers'?: Array; + 'logo_url'?: string | null; /** - * Description of the group + * Font family for email content (e.g., Arial, sans-serif) */ - 'description'?: string; + 'font_family'?: string | null; /** - * Privileges to assign to the group + * Product name to display */ - 'privileges'?: Array; + 'product_name'?: string | null; /** - * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + * Footer address text */ - 'sub_group_identifiers'?: Array; + 'footer_address'?: string | null; /** - * Group type. + * Footer phone number */ - 'type'?: CreateUserGroupRequestTypeEnum; + 'footer_phone'?: string | null; /** - * GUID or name of the users to assign to the group. + * Replacement value for Liveboard */ - 'user_identifiers'?: Array; + 'replacement_value_for_liveboard'?: string | null; /** - * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + * Replacement value for Answer */ - 'visibility'?: CreateUserGroupRequestVisibilityEnum; + 'replacement_value_for_answer'?: string | null; /** - * Role identifiers of the roles that should be assigned to the group. + * Replacement value for SpotIQ */ - 'role_identifiers'?: Array; + 'replacement_value_for_spot_iq'?: string | null; + /** + * Whether to hide footer address + */ + 'hide_footer_address'?: boolean | null; + /** + * Whether to hide footer phone number + */ + 'hide_footer_phone'?: boolean | null; + /** + * Whether to hide manage notification link + */ + 'hide_manage_notification'?: boolean | null; + /** + * Whether to hide mobile app nudge + */ + 'hide_mobile_app_nudge'?: boolean | null; + /** + * Whether to hide privacy policy link + */ + 'hide_privacy_policy'?: boolean | null; + /** + * Whether to hide product name + */ + 'hide_product_name'?: boolean | null; + /** + * Whether to hide ThoughtSpot vocabulary definitions + */ + 'hide_ts_vocabulary_definitions'?: boolean | null; + /** + * Whether to hide notification status + */ + 'hide_notification_status'?: boolean | null; + /** + * Whether to hide error message + */ + 'hide_error_message'?: boolean | null; + /** + * Whether to hide unsubscribe link + */ + 'hide_unsubscribe_link'?: boolean | null; + /** + * Whether to hide modify alert + */ + 'hide_modify_alert'?: boolean | null; + /** + * Company privacy policy URL (HTTP/HTTPS only) + */ + 'company_privacy_policy_url'?: string | null; + /** + * Company website URL (HTTP/HTTPS only) + */ + 'company_website_url'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3772,9 +3788,6 @@ declare class CreateUserGroupRequest { }[]; constructor(); } -type CreateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type CreateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -3787,15 +3800,13 @@ type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FavoriteMetadataInput { - /** - * Unique ID or name of the metadata object. - */ - 'identifier'?: string | null; + +declare class CreateEmailCustomizationRequest { + 'template_properties': CreateEmailCustomizationRequestTemplateProperties; /** - * Type of metadata 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. + * Unique ID or name of org Version: 10.12.0.cl or later */ - 'type'?: FavoriteMetadataInputTypeEnum | null; + 'org_identifier'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3811,7 +3822,6 @@ declare class FavoriteMetadataInput { }[]; constructor(); } -type FavoriteMetadataInputTypeEnum = "LIVEBOARD" | "ANSWER"; /** * ThoughtSpot Public REST API @@ -3824,84 +3834,9 @@ type FavoriteMetadataInputTypeEnum = "LIVEBOARD" | "ANSWER"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateUserRequest { - /** - * Name of the user. The username string must be unique. - */ - 'name': string; - /** - * A unique display name string for the user account, usually their first and last name - */ - 'display_name': string; - /** - * Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email. - */ - 'password'?: string; - /** - * Email of the user account - */ - 'email': string; - /** - * Type of the account. - */ - 'account_type'?: CreateUserRequestAccountTypeEnum; - /** - * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. - */ - 'account_status'?: CreateUserRequestAccountStatusEnum; - /** - * List of Org IDs to which the user belongs. - */ - 'org_identifiers'?: Array; - /** - * GUIDs or names of the groups to which the newly created user belongs. - */ - 'group_identifiers'?: Array; - /** - * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. - */ - 'visibility'?: CreateUserRequestVisibilityEnum; - /** - * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. - */ - 'notify_on_share'?: boolean | null; - /** - * The user preference for revisiting the onboarding experience. - */ - 'show_onboarding_experience'?: boolean | null; - /** - * flag to get the on-boarding experience is completed or not. - */ - 'onboarding_experience_completed'?: boolean | null; - /** - * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. - */ - 'home_liveboard_identifier'?: string; - /** - * Metadata objects to add to the user\'s favorites list. - */ - 'favorite_metadata'?: Array; - /** - * Locale for the user. - */ - 'preferred_locale'?: CreateUserRequestPreferredLocaleEnum; - /** - * Properties for the user - */ - 'extended_properties'?: any; - /** - * Preferences for the user - */ - 'extended_preferences'?: any; - /** - * Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled. - */ - 'trigger_welcome_email'?: boolean | null; - /** - * Flag to indicate whether activation email should be sent to the user. Default value for IAMv2 users is set to true. Users must either set this to false, or enter a valid password if they do not want to trigger an activation email. - */ - 'trigger_activation_email'?: boolean | null; +declare class OrgType { + 'name'?: string | null; + 'id'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3917,10 +3852,6 @@ declare class CreateUserRequest { }[]; constructor(); } -type CreateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type CreateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type CreateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type CreateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -3933,27 +3864,57 @@ type CreateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE * https://openapi-generator.tech * Do not edit the class manually. */ -declare class InputVariableValue { + +declare class CreateEmailCustomizationResponse { /** - * The connection property value + * Tenant ID */ - 'value': string; + 'tenant_id': string; + 'org': OrgType; /** - * The unique name of the org + * Email customization name. */ - 'org_identifier': string; + 'name': string; /** - * Principal type + * Customization configuration for the email */ - 'principal_type'?: InputVariableValuePrincipalTypeEnum | null; + 'template_properties': any; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class CreateOrgRequest { /** - * Unique ID or name of the principal + * Name of the Org. */ - 'principal_identifier'?: string | null; + 'name': string; /** - * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + * Description of the Org. */ - 'priority'?: number | null; + 'description'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -3969,7 +3930,6 @@ declare class InputVariableValue { }[]; constructor(); } -type InputVariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -3982,24 +3942,23 @@ type InputVariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class CreateVariableRequest { +declare class CreateRoleRequest { /** - * Type of variable + * Unique name of the Role. */ - 'type': CreateVariableRequestTypeEnum; + 'name': string; /** - * Name of the variable. This is unique across the cluster. + * Description of the Role. */ - 'name': string; + 'description'?: string; /** - * If the variable contains sensitive values like passwords + * Privileges granted to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. */ - 'sensitive'?: boolean | null; + 'privileges'?: Array; /** - * Values of variable + *
Version: 10.5.0.cl or later
Indicates whether the role is read only. A readonly role can neither be updated nor deleted. */ - 'values'?: Array; + 'read_only'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4015,7 +3974,7 @@ declare class CreateVariableRequest { }[]; constructor(); } -type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL"; +type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MANAGE_VARIABLES" | "CAN_MODIFY_FOLDERS" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; /** * ThoughtSpot Public REST API @@ -4031,7 +3990,7 @@ type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | " /** * Schedule selected cron expression. */ -declare class CronExpression { +declare class CronExpressionInput { /** * Day of month of the object. */ @@ -4083,18 +4042,47 @@ declare class CronExpression { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* MetadataType InputType used in Custom Action API\'s +* Frequency settings for the scheduled job. */ -declare class CustomActionMetadataTypeInput { - /** - * Type of metadata 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. - */ - 'type'?: CustomActionMetadataTypeInputTypeEnum | null; +declare class CreateScheduleRequestFrequency { + 'cron_expression': CronExpressionInput; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Options to specify details of Liveboard. +*/ +declare class CreateScheduleRequestLiveboardOptions { /** - * Unique ID or name of the metadata object. + * Unique ID or name of visualizations. */ - 'identifier': string; + 'visualization_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4110,7 +4098,6 @@ declare class CustomActionMetadataTypeInput { }[]; constructor(); } -type CustomActionMetadataTypeInputTypeEnum = "VISUALIZATION" | "ANSWER" | "WORKSHEET"; /** * ThoughtSpot Public REST API @@ -4123,36 +4110,46 @@ type CustomActionMetadataTypeInputTypeEnum = "VISUALIZATION" | "ANSWER" | "WORKS * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class Table { +/** +* PDF layout and orientation settings. Applicable only if the `file_format` is specified as `PDF`. +*/ +declare class CreateScheduleRequestPdfOptions { /** - * Name of the table. + * Indicates whether to include complete Liveboard. */ - 'name': string; + 'complete_liveboard'?: boolean | null; /** - * Columns of the table. + * Indicates whether to include cover page with the Liveboard title. */ - 'columns'?: Array | null; + 'include_cover_page'?: boolean | null; /** - * Type of table. Either view or table + * Indicates whether to include customized wide logo in the footer if available. */ - 'type'?: string | null; + 'include_custom_logo'?: boolean | null; /** - * Description of the table + * Indicates whether to include a page with all applied filters. */ - 'description'?: string | null; + 'include_filter_page'?: boolean | null; /** - * Determines if the table is selected + * Indicates whether to include page number in the footer of each page */ - 'selected'?: boolean | null; + 'include_page_number'?: boolean | null; /** - * Determines if the table is linked + * Text to include in the footer of each page. */ - 'linked'?: boolean | null; + 'page_footer_text'?: string | null; /** - * List of relationships for the table + * Page orientation of the PDF. */ - 'relationships'?: Array | null; + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: CreateScheduleRequestPdfOptionsPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4168,6 +4165,7 @@ declare class Table { }[]; constructor(); } +type CreateScheduleRequestPdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -4180,16 +4178,15 @@ declare class Table { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SchemaObject { +declare class PrincipalsListItemInput { /** - * Name of the schema. + * Unique ID or name of the user or group. */ - 'name': string; + 'identifier': string; /** - * Tables in the schema. + * Principal type. */ - 'tables'?: Array
| null; + 'type': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4218,19 +4215,18 @@ declare class SchemaObject { * Do not edit the class manually. */ -declare class Database { - /** - * Name of the database. - */ - 'name': string; +/** +* Recipients of the scheduled job notifications. Add the GUID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. +*/ +declare class CreateScheduleRequestRecipientDetails { /** - * Schemas of the database. + * Emails of the recipients. */ - 'schemas'?: Array | null; + 'emails'?: Array | null; /** - * Determines if the object is auto created. + * User or groups to be set as recipients of the schedule notifications. */ - 'auto_created'?: boolean | null; + 'principals'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4259,11 +4255,39 @@ declare class Database { * Do not edit the class manually. */ -declare class DataWarehouseObjects { +declare class CreateScheduleRequest { /** - * Databases of the connection. + * Name of the scheduled job. */ - 'databases': Array; + 'name': string; + /** + * Description of the job. + */ + 'description': string; + /** + * Type of the metadata object. + */ + 'metadata_type': CreateScheduleRequestMetadataTypeEnum; + /** + * Unique ID or name of the metadata object. + */ + 'metadata_identifier': string; + /** + * Export file format. + */ + 'file_format'?: CreateScheduleRequestFileFormatEnum; + 'liveboard_options'?: CreateScheduleRequestLiveboardOptions; + 'pdf_options'?: CreateScheduleRequestPdfOptions; + /** + * Time zone + */ + 'time_zone': CreateScheduleRequestTimeZoneEnum; + 'frequency'?: CreateScheduleRequestFrequency; + 'recipient_details': CreateScheduleRequestRecipientDetails; + /** + * Personalised view id of the liveboard to be scheduled. + */ + 'personalised_view_id'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4279,6 +4303,9 @@ declare class DataWarehouseObjects { }[]; constructor(); } +type CreateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; +type CreateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; +type CreateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; /** * ThoughtSpot Public REST API @@ -4291,14 +4318,15 @@ declare class DataWarehouseObjects { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DbtSearchResponse { - 'dbt_connection_identifier'?: string | null; - 'project_name'?: string | null; - 'connection_id'?: string | null; - 'connection_name'?: string | null; - 'cdw_database'?: string | null; - 'import_type'?: string | null; - 'author_name'?: string | null; +declare class CreateTagRequest { + /** + * Name of the tag. + */ + 'name': string; + /** + * Hex color code to be assigned to the tag. For example, #ff78a9. + */ + 'color'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4326,15 +4354,47 @@ declare class DbtSearchResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeactivateUserRequest { +declare class CreateUserGroupRequest { /** - * Unique ID or name of the user. + * Name of the group. The group name must be unique. */ - 'user_identifier': string; + 'name': string; /** - * Base url of the cluster. + * Display name for the group. */ - 'base_url': string; + 'display_name': string; + /** + * GUID of the Liveboards to assign as default Liveboards to the users in the group. + */ + 'default_liveboard_identifiers'?: Array; + /** + * Description of the group + */ + 'description'?: string; + /** + * Privileges to assign to the group + */ + 'privileges'?: Array; + /** + * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + */ + 'sub_group_identifiers'?: Array; + /** + * Group type. + */ + 'type'?: CreateUserGroupRequestTypeEnum; + /** + * GUID or name of the users to assign to the group. + */ + 'user_identifiers'?: Array; + /** + * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + */ + 'visibility'?: CreateUserGroupRequestVisibilityEnum; + /** + * Role identifiers of the roles that should be assigned to the group. + */ + 'role_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4350,6 +4410,9 @@ declare class DeactivateUserRequest { }[]; constructor(); } +type CreateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type CreateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -4362,14 +4425,15 @@ declare class DeactivateUserRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfig { +declare class FavoriteMetadataInput { /** - * Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Unique ID or name of the metadata object. */ - 'visibility'?: boolean | null; + 'identifier'?: string | null; + /** + * Type of metadata 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. + */ + 'type'?: FavoriteMetadataInputTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4385,6 +4449,7 @@ declare class DefaultActionConfig { }[]; constructor(); } +type FavoriteMetadataInputTypeEnum = "LIVEBOARD" | "ANSWER"; /** * ThoughtSpot Public REST API @@ -4397,14 +4462,84 @@ declare class DefaultActionConfig { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfigInput { + +declare class CreateUserRequest { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Name of the user. The username string must be unique. */ - 'visibility'?: boolean | null; + 'name': string; + /** + * A unique display name string for the user account, usually their first and last name + */ + 'display_name': string; + /** + * Password for the user account. For IAMv2 users, you must set this password if you do not want to trigger an activation email. + */ + 'password'?: string; + /** + * Email of the user account + */ + 'email': string; + /** + * Type of the account. + */ + 'account_type'?: CreateUserRequestAccountTypeEnum; + /** + * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. + */ + 'account_status'?: CreateUserRequestAccountStatusEnum; + /** + * List of Org IDs to which the user belongs. + */ + 'org_identifiers'?: Array; + /** + * GUIDs or names of the groups to which the newly created user belongs. + */ + 'group_identifiers'?: Array; + /** + * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. + */ + 'visibility'?: CreateUserRequestVisibilityEnum; + /** + * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for revisiting the onboarding experience. + */ + 'show_onboarding_experience'?: boolean | null; + /** + * flag to get the on-boarding experience is completed or not. + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. + */ + 'home_liveboard_identifier'?: string; + /** + * Metadata objects to add to the user\'s favorites list. + */ + 'favorite_metadata'?: Array; + /** + * Locale for the user. + */ + 'preferred_locale'?: CreateUserRequestPreferredLocaleEnum; + /** + * Properties for the user + */ + 'extended_properties'?: any; + /** + * Preferences for the user + */ + 'extended_preferences'?: any; + /** + * Flag to indicate whether welcome email should be sent to user. This parameter is applied only on clusters on which IAM is disabled. + */ + 'trigger_welcome_email'?: boolean | null; + /** + * Flag to indicate whether activation email should be sent to the user. Default value for IAMv2 users is set to true. Users must either set this to false, or enter a valid password if they do not want to trigger an activation email. + */ + 'trigger_activation_email'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4420,6 +4555,10 @@ declare class DefaultActionConfigInput { }[]; constructor(); } +type CreateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type CreateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type CreateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type CreateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -4432,14 +4571,23 @@ declare class DefaultActionConfigInput { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfigInputCreate { +declare class CreateVariableRequest { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true + * Type of variable */ - 'visibility'?: boolean | null; + 'type': CreateVariableRequestTypeEnum; + /** + * Name of the variable. This is unique across the cluster. + */ + 'name': string; + /** + * If the variable contains sensitive values like passwords + */ + 'is_sensitive'?: boolean | null; + /** + * Variable Data Type + */ + 'data_type'?: CreateVariableRequestDataTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4455,6 +4603,8 @@ declare class DefaultActionConfigInputCreate { }[]; constructor(); } +type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE"; +type CreateVariableRequestDataTypeEnum = "VARCHAR" | "INT32" | "INT64" | "DOUBLE" | "DATE" | "DATE_TIME"; /** * ThoughtSpot Public REST API @@ -4467,14 +4617,15 @@ declare class DefaultActionConfigInputCreate { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class DefaultActionConfigSearchInput { +declare class WebhookAuthApiKeyInput { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * The header or query parameter name for the API key. */ - 'visibility'?: boolean | null; + 'key': string; + /** + * The API key value. + */ + 'value': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4502,11 +4653,15 @@ declare class DefaultActionConfigSearchInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteConfigRequest { +declare class WebhookAuthBasicAuthInput { /** - * Applicable when Orgs is enabled in the cluster Indicator to consider cluster level or org level config. Set it to false to delete configuration from current org. If set to true, then the configuration at cluster level and orgs that inherited the configuration from cluster level will be deleted. Version: 9.5.0.cl or later + * Username for basic authentication. */ - 'cluster_level'?: boolean | null; + 'username': string; + /** + * Password for basic authentication. + */ + 'password': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4534,15 +4689,19 @@ declare class DeleteConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteConnectionConfigurationRequest { +declare class WebhookAuthOAuth2Input { /** - * Unique ID or name of the configuration. + * OAuth2 authorization server URL. */ - 'configuration_identifier': string; + 'authorization_url': string; /** - * Unique ID or name of the connection. + * OAuth2 client identifier. */ - 'connection_identifier': string; + 'client_id': string; + /** + * OAuth2 client secret key. + */ + 'client_secret': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4570,11 +4729,18 @@ declare class DeleteConnectionConfigurationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteConnectionRequest { + +/** +* Authorization configuration for the webhook. +*/ +declare class CreateWebhookConfigurationRequestAuthentication { + 'API_KEY'?: WebhookAuthApiKeyInput; + 'BASIC_AUTH'?: WebhookAuthBasicAuthInput; /** - * Unique ID or name of the connection. + * Bearer token authentication configuration. */ - 'connection_identifier': string; + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2Input; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4603,17 +4769,25 @@ declare class DeleteConnectionRequest { * Do not edit the class manually. */ /** -* MetadataType InputType used in Delete MetadataType API +* Configuration for webhook signature verification. */ -declare class DeleteMetadataTypeInput { +declare class CreateWebhookConfigurationRequestSignatureVerification { /** - * Type of metadata. 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. + * Signature verification method type. */ - 'type'?: DeleteMetadataTypeInputTypeEnum | null; + 'type': CreateWebhookConfigurationRequestSignatureVerificationTypeEnum; /** - * Unique ID or name of the metadata object. + * HTTP header where the signature is sent. */ - 'identifier': string; + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4629,7 +4803,8 @@ declare class DeleteMetadataTypeInput { }[]; constructor(); } -type DeleteMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LOGICAL_RELATIONSHIP"; +type CreateWebhookConfigurationRequestSignatureVerificationTypeEnum = "HMAC_SHA256"; +type CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum = "SHA256"; /** * ThoughtSpot Public REST API @@ -4643,15 +4818,29 @@ type DeleteMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" * Do not edit the class manually. */ -declare class DeleteMetadataRequest { +declare class CreateWebhookConfigurationRequest { /** - * Metadata objects. + * Name of the webhook configuration. */ - 'metadata': Array; + 'name': string; /** - * Indicates whether to delete disabled metadata objects. + * Description of the webhook configuration. */ - 'delete_disabled_objects'?: boolean | null; + 'description'?: string; + /** + * The webhook endpoint URL. + */ + 'url': string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any; + /** + * List of events to subscribe to. + */ + 'events': Array; + 'authentication'?: CreateWebhookConfigurationRequestAuthentication; + 'signature_verification'?: CreateWebhookConfigurationRequestSignatureVerification; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4667,6 +4856,7 @@ declare class DeleteMetadataRequest { }[]; constructor(); } +type CreateWebhookConfigurationRequestEventsEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -4679,11 +4869,34 @@ declare class DeleteMetadataRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeleteOrgEmailCustomizationRequest { +/** +* Schedule selected cron expression. +*/ +declare class CronExpression { /** - * Unique identifier of the organization. + * Day of month of the object. */ - 'org_identifiers'?: Array; + 'day_of_month': string; + /** + * Day of Week of the object. + */ + 'day_of_week': string; + /** + * Hour of the object. + */ + 'hour': string; + /** + * Minute of the object. + */ + 'minute': string; + /** + * Month of the object. + */ + 'month': string; + /** + * Second of the object. + */ + 'second': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4711,23 +4924,18 @@ declare class DeleteOrgEmailCustomizationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeployCommitRequest { - /** - * Commit_id against which the files should be picked to deploy. Note: If no commit_id is specified, then the head of the branch is considered. - */ - 'commit_id'?: string; - /** - * Name of the remote branch where changes should be picked - */ - 'branch_name': string; +/** +* MetadataType InputType used in Custom Action API\'s +*/ +declare class CustomActionMetadataTypeInput { /** - * Indicates if all files or only modified file at specified commit point should be considered + * Type of metadata 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. */ - 'deploy_type'?: DeployCommitRequestDeployTypeEnum; + 'type'?: CustomActionMetadataTypeInputTypeEnum | null; /** - * Define the policy to follow while importing TML in the ThoughtSpot environment. Use “ALL_OR_NONE” to cancel the deployment of all ThoughtSpot objects if at least one of them fails to import. Use “Partial” to import ThoughtSpot objects that validate successfully even if other objects in the same deploy operations fail to import. + * Unique ID or name of the metadata object. */ - 'deploy_policy'?: DeployCommitRequestDeployPolicyEnum; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4743,8 +4951,7 @@ declare class DeployCommitRequest { }[]; constructor(); } -type DeployCommitRequestDeployTypeEnum = "FULL" | "DELTA"; -type DeployCommitRequestDeployPolicyEnum = "ALL_OR_NONE" | "PARTIAL" | "VALIDATE_ONLY"; +type CustomActionMetadataTypeInputTypeEnum = "VISUALIZATION" | "ANSWER" | "WORKSHEET"; /** * ThoughtSpot Public REST API @@ -4757,27 +4964,19 @@ type DeployCommitRequestDeployPolicyEnum = "ALL_OR_NONE" | "PARTIAL" | "VALIDATE * https://openapi-generator.tech * Do not edit the class manually. */ -declare class DeployResponse { - /** - * Name of the file deployed - */ - 'file_name'?: string | null; - /** - * Name of the metadata object - */ - 'metadata_name'?: string | null; +declare class EntityHeader { /** - * Type of the metadata object + * Description of the data source. */ - 'metadata_type'?: string | null; + 'description'?: string | null; /** - * Indicates the status of deployment for the file + * Display name of the data source. */ - 'status_code'?: string | null; + 'data_source_name'?: string | null; /** - * Any error or warning with the deployment + * Unique identifier of the data source. */ - 'status_message'?: string | null; + 'data_source_identifier'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4805,8 +5004,17 @@ declare class DeployResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ErrorResponse { - 'error'?: any | null; + +declare class DataSource { + /** + * Confidence score for the data source suggestion. + */ + 'confidence'?: number | null; + 'details'?: EntityHeader; + /** + * LLM reasoning for the data source. + */ + 'reasoning'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4834,19 +5042,36 @@ declare class ErrorResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class EurekaLLMSuggestedQuery { + +declare class Table { /** - * NL query that can be run using spotter aka natural language search to get an AI generated answer. + * Name of the table. */ - 'query'?: string | null; + 'name': string; /** - * Unique identifier of the worksheet on which this query can be run on. + * Columns of the table. */ - 'worksheetId'?: string | null; + 'columns'?: Array | null; /** - * Display name of the worksheet on which this query can be run on. + * Type of table. Either view or table */ - 'worksheetName'?: string | null; + 'type'?: string | null; + /** + * Description of the table + */ + 'description'?: string | null; + /** + * Determines if the table is selected + */ + 'selected'?: boolean | null; + /** + * Determines if the table is linked + */ + 'linked'?: boolean | null; + /** + * List of relationships for the table + */ + 'relationships'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4875,11 +5100,15 @@ declare class EurekaLLMSuggestedQuery { * Do not edit the class manually. */ -declare class EurekaLLMDecomposeQueryResponse { +declare class SchemaObject { /** - * List of analytical questions that can be run on their respective worksheet/data sources. + * Name of the schema. */ - 'decomposedQueries'?: Array | null; + 'name': string; + /** + * Tables in the schema. + */ + 'tables'?: Array
| null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4908,8 +5137,19 @@ declare class EurekaLLMDecomposeQueryResponse { * Do not edit the class manually. */ -declare class EurekaDecomposeQueryResponse { - 'decomposedQueryResponse'?: EurekaLLMDecomposeQueryResponse; +declare class Database { + /** + * Name of the database. + */ + 'name': string; + /** + * Schemas of the database. + */ + 'schemas'?: Array | null; + /** + * Determines if the object is auto created. + */ + 'auto_created'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4937,15 +5177,12 @@ declare class EurekaDecomposeQueryResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ExcludeMetadataListItemInput { - /** - * Unique ID or name of the metadata. - */ - 'identifier': string; + +declare class DataWarehouseObjects { /** - * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view 5. CONNECTION for connection objects 6. TAG for tag objects 7. USER for user objects 8. USER_GROUP for group objects 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values. 10. INSIGHT_SPEC for SpotIQ objects + * Databases of the connection. */ - 'type': ExcludeMetadataListItemInputTypeEnum; + 'databases': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -4961,7 +5198,6 @@ declare class ExcludeMetadataListItemInput { }[]; constructor(); } -type ExcludeMetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -4974,26 +5210,14 @@ type ExcludeMetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options for specific region specific overrides to support date/number/string/currency formatting. -*/ -declare class ExportAnswerReportRequestRegionalSettings { - /** - * ISO code to be appended with currency values. - */ - 'currency_format'?: ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum | null; - /** - * Indicates the locale to be used for all formattings. - */ - 'user_locale'?: ExportAnswerReportRequestRegionalSettingsUserLocaleEnum | null; - /** - * Indicates the locale to be used for number formatting. - */ - 'number_format_locale'?: ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum | null; - /** - * Indicates the locale to be used for date formatting. - */ - 'date_format_locale'?: ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum | null; +declare class DbtSearchResponse { + 'dbt_connection_identifier'?: string | null; + 'project_name'?: string | null; + 'connection_id'?: string | null; + 'connection_name'?: string | null; + 'cdw_database'?: string | null; + 'import_type'?: string | null; + 'author_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5009,10 +5233,6 @@ declare class ExportAnswerReportRequestRegionalSettings { }[]; constructor(); } -type ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; -type ExportAnswerReportRequestRegionalSettingsUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -5025,37 +5245,15 @@ type ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum = "en-CA" | " * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ExportAnswerReportRequest { - /** - * Unique ID or name of the metadata object. - */ - 'metadata_identifier'?: string; - /** - * Unique ID of the answer session. - */ - 'session_identifier'?: string; - /** - * Generation number of the answer session. - */ - 'generation_number'?: number; - /** - * Export file format. - */ - 'file_format'?: ExportAnswerReportRequestFileFormatEnum; - /** - * JSON string representing runtime filter. { col1:region, op1: EQ, val1: northeast } - */ - 'runtime_filter'?: any; +declare class DeactivateUserRequest { /** - * JSON string representing runtime sort. { sortCol1: region, asc1 :true, sortCol2 : date } + * Unique ID or name of the user. */ - 'runtime_sort'?: any; + 'user_identifier': string; /** - * JSON object for setting values of parameters in runtime. + * Base url of the cluster. */ - 'runtime_param_override'?: any; - 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; + 'base_url': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5071,7 +5269,6 @@ declare class ExportAnswerReportRequest { }[]; constructor(); } -type ExportAnswerReportRequestFileFormatEnum = "CSV" | "PDF" | "XLSX" | "PNG"; /** * ThoughtSpot Public REST API @@ -5085,37 +5282,13 @@ type ExportAnswerReportRequestFileFormatEnum = "CSV" | "PDF" | "XLSX" | "PNG"; * Do not edit the class manually. */ /** -* Options for PDF export. +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. */ -declare class ExportLiveboardReportRequestPdfOptions { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page. - */ - 'include_page_number'?: boolean | null; - /** - * Page orientation of the PDF. - */ - 'page_orientation'?: ExportLiveboardReportRequestPdfOptionsPageOrientationEnum | null; - /** - * Indicates whether to include only the first page of the tables. - */ - 'truncate_table'?: boolean | null; +declare class DefaultActionConfig { /** - * Text to include in the footer of each page. + * Custom action is available on all visualizations. Earlier , the naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. */ - 'page_footer_text'?: string | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5131,7 +5304,6 @@ declare class ExportLiveboardReportRequestPdfOptions { }[]; constructor(); } -type ExportLiveboardReportRequestPdfOptionsPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; /** * ThoughtSpot Public REST API @@ -5145,33 +5317,13 @@ type ExportLiveboardReportRequestPdfOptionsPageOrientationEnum = "PORTRAIT" | "L * Do not edit the class manually. */ /** -* Options for PNG export. +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. */ -declare class ExportLiveboardReportRequestPngOptions { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates personalised view of the Liveboard in case of png - */ - 'personalised_view_id'?: string | null; - /** - * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later - */ - 'image_resolution'?: number | null; - /** - * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later - */ - 'image_scale'?: number | null; +declare class DefaultActionConfigInput { /** - * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. */ - 'include_header'?: boolean | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5199,51 +5351,14 @@ declare class ExportLiveboardReportRequestPngOptions { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ExportLiveboardReportRequest { - /** - * GUID or name of the Liveboard object. - */ - 'metadata_identifier': string; - /** - * GUID or name of the tab of the Liveboard object. Version: 10.9.0.cl or later - */ - 'tab_identifiers'?: Array; - /** - * GUID or name of the personalised view of the Liveboard object. Version: 10.9.0.cl or later - */ - 'personalised_view_identifier'?: string; - /** - * GUID or name of visualizations on the Liveboard. If this parameter is not defined, the API returns a report with all visualizations saved on a Liveboard. - */ - 'visualization_identifiers'?: Array; - /** - * Transient content of the Liveboard. - */ - 'transient_content'?: string; - /** - * Export file format. - */ - 'file_format'?: ExportLiveboardReportRequestFileFormatEnum; - /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"region\", \"op1\": \"EQ\", \"val1\": \"northeast\" }. You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). - */ - 'runtime_filter'?: any; - /** - * Applied to the liveboard and overrides any filters already applied on the same columns in liveboard. Following example illustrate different kinds of filters: { \"override_filters\": [ { \"column_name\": \"Color\", \"generic_filter\": { \"op\": \"IN\", \"values\": [ \"almond\", \"turquoise\" ] }, \"negate\": false }, { \"column_name\": \"Commit Date\", \"date_filter\": { \"datePeriod\": \"HOUR\", \"number\": 3, \"type\": \"LAST_N_PERIOD\", \"op\": \"EQ\" } }, { \"column_name\": \"Sales\", \"generic_filter\": { \"op\": \"BW_INC\", \"values\": [ \"100000\", \"70000\" ] }, \"negate\": true } ] } - */ - 'override_filters'?: any; - /** - * JSON string representing runtime sort. For example, {\"sortCol1\": \"region\", \"asc1\" : true}. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). - */ - 'runtime_sort'?: any; - 'pdf_options'?: ExportLiveboardReportRequestPdfOptions; - 'png_options'?: ExportLiveboardReportRequestPngOptions; +/** +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. +*/ +declare class DefaultActionConfigInputCreate { /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. Default: true */ - 'runtime_param_override'?: any; - 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5259,7 +5374,6 @@ declare class ExportLiveboardReportRequest { }[]; constructor(); } -type ExportLiveboardReportRequestFileFormatEnum = "PDF" | "PNG"; /** * ThoughtSpot Public REST API @@ -5272,31 +5386,14 @@ type ExportLiveboardReportRequestFileFormatEnum = "PDF" | "PNG"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ExportMetadataTMLBatchedRequest { - /** - * Type of metadata object to export, can be one of USER | ROLE | USER_GROUP - */ - 'metadata_type': ExportMetadataTMLBatchedRequestMetadataTypeEnum; - /** - * Indicates the position within the complete set from where the API should begin returning objects. - */ - 'batch_offset'?: number; - /** - * Determines the number of objects or items to be retrieved in a single request. - */ - 'batch_size'?: number; - /** - * TML EDOC content format. - */ - 'edoc_format'?: ExportMetadataTMLBatchedRequestEdocFormatEnum; - /** - * Indicates whether to export dependent metadata objects of specified metadata objects. - */ - 'export_dependent'?: boolean | null; +/** +* Default Custom action configuration. This includes the custom action\'s visibility across all visualizations and Answers. By default, a custom action is added to all visualizations and Answers. +*/ +declare class DefaultActionConfigSearchInput { /** - * Indicates whether to export is happening from all orgs context. + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. */ - 'all_orgs_override'?: boolean | null; + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5312,8 +5409,6 @@ declare class ExportMetadataTMLBatchedRequest { }[]; constructor(); } -type ExportMetadataTMLBatchedRequestMetadataTypeEnum = "USER" | "USER_GROUP" | "ROLE"; -type ExportMetadataTMLBatchedRequestEdocFormatEnum = "JSON" | "YAML"; /** * ThoughtSpot Public REST API @@ -5326,30 +5421,11 @@ type ExportMetadataTMLBatchedRequestEdocFormatEnum = "JSON" | "YAML"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Flags to specify additional options for export. Version: 10.6.0.cl or later -*/ -declare class ExportMetadataTMLRequestExportOptions { - /** - * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_obj_id_ref'?: boolean | null; - /** - * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_guid'?: boolean | null; - /** - * 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. - */ - 'include_obj_id'?: boolean | null; - /** - * 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 - */ - 'export_with_associated_feedbacks'?: boolean | null; +declare class DeleteConfigRequest { /** - * 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 + * Applicable when Orgs is enabled in the cluster Indicator to consider cluster level or org level config. Set it to false to delete configuration from current org. If set to true, then the configuration at cluster level and orgs that inherited the configuration from cluster level will be deleted. Version: 9.5.0.cl or later */ - 'export_column_security_rules'?: boolean | null; + 'cluster_level'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5377,26 +5453,15 @@ declare class ExportMetadataTMLRequestExportOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* MetadataType InputType used in Export MetadataType API -*/ -declare class ExportMetadataTypeInput { - /** - * Type of metadata. 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. - */ - 'type'?: ExportMetadataTypeInputTypeEnum | null; - /** - * Unique ID or name of the metadata object. Not required if the metadata type is ANSWER when session_id and generation_number is set. - */ - 'identifier'?: string | null; +declare class DeleteConnectionConfigurationRequest { /** - * Unique ID of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + * Unique ID or name of the configuration. */ - 'session_identifier'?: string | null; + 'configuration_identifier': string; /** - * Generation Number of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + * Unique ID or name of the connection. */ - 'generation_number'?: number | null; + 'connection_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5412,7 +5477,6 @@ declare class ExportMetadataTypeInput { }[]; constructor(); } -type ExportMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CONNECTION" | "CUSTOM_ACTION" | "USER" | "USER_GROUP" | "ROLE" | "FEEDBACK"; /** * ThoughtSpot Public REST API @@ -5425,41 +5489,11 @@ type ExportMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ExportMetadataTMLRequest { - /** - * Metadata objects. - */ - 'metadata': Array; - /** - * Indicates whether to export associated metadata objects of specified metadata objects. - */ - 'export_associated'?: boolean | null; - /** - * Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects, the API returns the Liveboard TML data with the FQNs of the referenced worksheet. If the exported TML data includes FQNs, you don\'t need to manually add FQNs of the referenced objects during TML import. - */ - 'export_fqn'?: boolean | null; - /** - * TML EDOC content format. **Note: exporting in YAML format currently requires manual formatting of the output. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** - */ - 'edoc_format'?: ExportMetadataTMLRequestEdocFormatEnum; - /** - * Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version. - */ - 'export_schema_version'?: ExportMetadataTMLRequestExportSchemaVersionEnum; - /** - * Indicates whether to export table while exporting connection. - */ - 'export_dependent'?: boolean | null; - /** - * Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard. This will only be active when export_associated is true. - */ - 'export_connection_as_dependent'?: boolean | null; +declare class DeleteConnectionRequest { /** - * Indicates whether to export is happening from all orgs context. + * Unique ID or name of the connection. */ - 'all_orgs_override'?: boolean | null; - 'export_options'?: ExportMetadataTMLRequestExportOptions; + 'connection_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5475,8 +5509,6 @@ declare class ExportMetadataTMLRequest { }[]; constructor(); } -type ExportMetadataTMLRequestEdocFormatEnum = "JSON" | "YAML"; -type ExportMetadataTMLRequestExportSchemaVersionEnum = "DEFAULT" | "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -5490,29 +5522,17 @@ type ExportMetadataTMLRequestExportSchemaVersionEnum = "DEFAULT" | "V1" | "V2"; * Do not edit the class manually. */ /** -* Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled. +* MetadataType InputType used in Delete MetadataType API */ -declare class ExportOptions { - /** - * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_obj_id_ref'?: boolean | null; - /** - * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. - */ - 'include_guid'?: boolean | null; - /** - * 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. - */ - 'include_obj_id'?: boolean | null; +declare class DeleteMetadataTypeInput { /** - * 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 + * Type of metadata. 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. */ - 'export_with_associated_feedbacks'?: boolean | null; + 'type'?: DeleteMetadataTypeInputTypeEnum | null; /** - * 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 + * Unique ID or name of the metadata object. */ - 'export_column_security_rules'?: boolean | null; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5528,6 +5548,7 @@ declare class ExportOptions { }[]; constructor(); } +type DeleteMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LOGICAL_RELATIONSHIP"; /** * ThoughtSpot Public REST API @@ -5540,23 +5561,16 @@ declare class ExportOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ExternalTableInput { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Name of the database. - */ - 'database_name'?: string | null; + +declare class DeleteMetadataRequest { /** - * Name of the schema. + * Metadata objects. */ - 'schema_name'?: string | null; + 'metadata': Array; /** - * Name of the table. Table names may be case-sensitive depending on the database system. + * Indicates whether to delete disabled metadata objects. */ - 'table_name': string; + 'delete_disabled_objects'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5584,19 +5598,11 @@ declare class ExternalTableInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FavoriteMetadataItem { - /** - * Unique ID of the metadata object. - */ - 'id': string; - /** - * name of the metadata object. - */ - 'name': string; +declare class DeleteOrgEmailCustomizationRequest { /** - * Type of metadata 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. + * Unique identifier of the organization. */ - 'type': FavoriteMetadataItemTypeEnum; + 'org_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5612,7 +5618,6 @@ declare class FavoriteMetadataItem { }[]; constructor(); } -type FavoriteMetadataItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; /** * ThoughtSpot Public REST API @@ -5625,18 +5630,11 @@ type FavoriteMetadataItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | " * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Favorite object options. -*/ -declare class FavoriteObjectOptionsInput { +declare class DeleteWebhookConfigurationsRequest { /** - * Includes objects marked as favorite for the specified users. + * List of webhook identifiers to delete. */ - 'include'?: boolean | null; - /** - * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. - */ - 'user_identifiers'?: Array | null; + 'webhook_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5664,35 +5662,23 @@ declare class FavoriteObjectOptionsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchAnswerDataRequest { - /** - * GUID or name of the Answer. - */ - 'metadata_identifier': string; - /** - * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. - */ - 'data_format'?: FetchAnswerDataRequestDataFormatEnum; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; +declare class DeployCommitRequest { /** - * The number of records to include in a batch. + * Commit_id against which the files should be picked to deploy. Note: If no commit_id is specified, then the head of the branch is considered. */ - 'record_size'?: number; + 'commit_id'?: string; /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). + * Name of the remote branch where changes should be picked */ - 'runtime_filter'?: any; + 'branch_name': string; /** - * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). + * Indicates if all files or only modified file at specified commit point should be considered */ - 'runtime_sort'?: any; + 'deploy_type'?: DeployCommitRequestDeployTypeEnum; /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * Define the policy to follow while importing TML in the ThoughtSpot environment. Use “ALL_OR_NONE” to cancel the deployment of all ThoughtSpot objects if at least one of them fails to import. Use “Partial” to import ThoughtSpot objects that validate successfully even if other objects in the same deploy operations fail to import. */ - 'runtime_param_override'?: any; + 'deploy_policy'?: DeployCommitRequestDeployPolicyEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5708,7 +5694,8 @@ declare class FetchAnswerDataRequest { }[]; constructor(); } -type FetchAnswerDataRequestDataFormatEnum = "FULL" | "COMPACT"; +type DeployCommitRequestDeployTypeEnum = "FULL" | "DELTA"; +type DeployCommitRequestDeployPolicyEnum = "ALL_OR_NONE" | "PARTIAL" | "VALIDATE_ONLY"; /** * ThoughtSpot Public REST API @@ -5721,11 +5708,27 @@ type FetchAnswerDataRequestDataFormatEnum = "FULL" | "COMPACT"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchAnswerSqlQueryRequest { +declare class DeployResponse { /** - * ID or name of an Answer. + * Name of the file deployed */ - 'metadata_identifier': string; + 'file_name'?: string | null; + /** + * Name of the metadata object + */ + 'metadata_name'?: string | null; + /** + * Type of the metadata object + */ + 'metadata_type'?: string | null; + /** + * Indicates the status of deployment for the file + */ + 'status_code'?: string | null; + /** + * Any error or warning with the deployment + */ + 'status_message'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5753,31 +5756,8 @@ declare class FetchAnswerSqlQueryRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchAsyncImportTaskStatusRequest { - /** - * List of task IDs to fetch status for. - */ - 'task_ids'?: Array; - /** - * List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED] - */ - 'task_status'?: Array; - /** - * Author GUID or name of async import tasks to filter on. - */ - 'author_identifier'?: string; - /** - * The offset point, starting from where the task status should be included in the response. - */ - 'record_offset'?: number; - /** - * The number of task statuses that should be included in the response starting from offset position. - */ - 'record_size'?: number; - /** - * Boolean flag to specify whether to include import response in the task status objects. - */ - 'include_import_response'?: boolean | null; +declare class ErrorResponse { + 'error'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5793,7 +5773,6 @@ declare class FetchAsyncImportTaskStatusRequest { }[]; constructor(); } -type FetchAsyncImportTaskStatusRequestTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; /** * ThoughtSpot Public REST API @@ -5807,11 +5786,11 @@ type FetchAsyncImportTaskStatusRequestTaskStatusEnum = "COMPLETED" | "IN_QUEUE" * Do not edit the class manually. */ -declare class FetchColumnSecurityRulesRequest { +declare class EurekaDataSourceSuggestionResponse { /** - * Array of table identifier objects for which to fetch column security rules + * List of data sources suggested. */ - 'tables': Array; + 'data_sources'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5839,11 +5818,19 @@ declare class FetchColumnSecurityRulesRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchConnectionDiffStatusResponse { +declare class EurekaLLMSuggestedQuery { /** - * Status of the connection diff. + * NL query that can be run using spotter aka natural language search to get an AI generated answer. */ - 'status'?: boolean | null; + 'query'?: string | null; + /** + * Unique identifier of the worksheet on which this query can be run on. + */ + 'worksheetId'?: string | null; + /** + * Display name of the worksheet on which this query can be run on. + */ + 'worksheetName'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5871,43 +5858,12 @@ declare class FetchConnectionDiffStatusResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchLiveboardDataRequest { - /** - * GUID or name of the Liveboard. - */ - 'metadata_identifier': string; - /** - * GUIDs or names of the visualizations on the Liveboard. - */ - 'visualization_identifiers'?: Array; - /** - * Transient content of the Liveboard. - */ - 'transient_content'?: string; - /** - * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. - */ - 'data_format'?: FetchLiveboardDataRequestDataFormatEnum; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records to include in a batch. - */ - 'record_size'?: number; - /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). - */ - 'runtime_filter'?: any; - /** - * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). - */ - 'runtime_sort'?: any; + +declare class EurekaLLMDecomposeQueryResponse { /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * List of analytical questions that can be run on their respective worksheet/data sources. */ - 'runtime_param_override'?: any; + 'decomposedQueries'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5923,7 +5879,6 @@ declare class FetchLiveboardDataRequest { }[]; constructor(); } -type FetchLiveboardDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -5936,15 +5891,9 @@ type FetchLiveboardDataRequestDataFormatEnum = "FULL" | "COMPACT"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchLiveboardSqlQueryRequest { - /** - * ID or name of the Liveboard. - */ - 'metadata_identifier': string; - /** - * Unique ID or name of visualizations. - */ - 'visualization_identifiers'?: Array; + +declare class EurekaDecomposeQueryResponse { + 'decomposedQueryResponse'?: EurekaLLMDecomposeQueryResponse; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -5972,23 +5921,15 @@ declare class FetchLiveboardSqlQueryRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class FetchLogsRequest { - /** - * Name of the log type - */ - 'log_type': FetchLogsRequestLogTypeEnum; - /** - * Start time in EPOCH format - */ - 'start_epoch_time_in_millis'?: number; +declare class NLInstructionsInfo { /** - * End time in EPOCH format + * User instructions for natural language processing. */ - 'end_epoch_time_in_millis'?: number; + 'instructions': Array; /** - * Fetch all the logs. This is available from 9.10.5.cl + * Scope of the instruction. */ - 'get_all_logs'?: boolean | null; + 'scope': NLInstructionsInfoScopeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6004,7 +5945,7 @@ declare class FetchLogsRequest { }[]; constructor(); } -type FetchLogsRequestLogTypeEnum = "SECURITY_AUDIT"; +type NLInstructionsInfoScopeEnum = "GLOBAL"; /** * ThoughtSpot Public REST API @@ -6017,18 +5958,12 @@ type FetchLogsRequestLogTypeEnum = "SECURITY_AUDIT"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* MetadataType InputType used in Permission API\'s -*/ -declare class PermissionsMetadataTypeInput { - /** - * Type of metadata 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. - */ - 'type'?: PermissionsMetadataTypeInputTypeEnum | null; + +declare class EurekaGetNLInstructionsResponse { /** - * Unique ID or name of the metadata object. + * List of NL instructions with their scopes. */ - 'identifier': string; + 'nl_instructions_info': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6044,7 +5979,6 @@ declare class PermissionsMetadataTypeInput { }[]; constructor(); } -type PermissionsMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -6057,15 +5991,19 @@ type PermissionsMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PrincipalsInput { +declare class EurekaRelevantQuestion { /** - * Unique ID or name of the principal object such as a user or group. + * NL query that can be run using spotter aka natural language search to get an AI generated answer. */ - 'identifier': string; + 'query'?: string | null; /** - * Principal type. + * Unique identifier of the data source on which this query can be run on. */ - 'type'?: PrincipalsInputTypeEnum | null; + 'data_source_identifier'?: string | null; + /** + * Display name of the data source on which this query can be run on. + */ + 'data_source_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6081,7 +6019,6 @@ declare class PrincipalsInput { }[]; constructor(); } -type PrincipalsInputTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -6095,27 +6032,11 @@ type PrincipalsInputTypeEnum = "USER" | "USER_GROUP"; * Do not edit the class manually. */ -declare class FetchPermissionsOfPrincipalsRequest { - /** - * GUID or name of the user or group. - */ - 'principals': Array; - /** - * Metadata objects for which you want to fetch permission details. If not specified, the API returns permission details for all metadata objects that the specified users and groups can access. - */ - 'metadata'?: Array; - /** - * The starting record number from where the records should be included for each metadata type. - */ - 'record_offset'?: number; - /** - * The number of records that should be included for each metadata type. - */ - 'record_size'?: number; +declare class EurekaGetRelevantQuestionsResponse { /** - * When no metadata objects input is passed, metadata objects of this type are fetched. + * List of relevant questions that can be run on their respective data sources. */ - 'default_metadata_type'?: FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum; + 'relevant_questions'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6131,7 +6052,6 @@ declare class FetchPermissionsOfPrincipalsRequest { }[]; constructor(); } -type FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum = "ALL" | "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -6144,32 +6064,11 @@ type FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum = "ALL" | "LIVEB * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class FetchPermissionsOnMetadataRequest { - /** - * GUID or name of the metadata object. - */ - 'metadata': Array; - /** - * User or group objects for which you want to fetch permissions. If not specified, the API returns all users and groups that can access the specified metadata objects. - */ - 'principals'?: Array; - /** - * Indicates whether to fetch permissions of dependent metadata objects. - */ - 'include_dependent_objects'?: boolean | null; - /** - * The starting record number from where the records should be included for each metadata type. - */ - 'record_offset'?: number; - /** - * The number of records that should be included for each metadata type. - */ - 'record_size'?: number; +declare class EurekaSetNLInstructionsResponse { /** - *
Version: 10.3.0.cl or later
Specifies the type of permission. Valid values are: EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong. DEFINED - If a user or user group received access to metadata objects via object sharing by another user. + * Success status of the operation. */ - 'permission_type'?: string; + 'success': boolean; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6197,22 +6096,15 @@ declare class FetchPermissionsOnMetadataRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Filter Rules to be applied on Objects. -*/ -declare class FilterRules { - /** - * The name of the column to apply the filter on. - */ - 'column_name': string; +declare class ExcludeMetadataListItemInput { /** - * The operator to use for filtering. Example: EQ (equals), GT(greater than), etc. + * Unique ID or name of the metadata. */ - 'operator': FilterRulesOperatorEnum; + 'identifier': string; /** - * The values to filter on. To get all records, use TS_WILDCARD_ALL as values. + * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view 5. CONNECTION for connection objects 6. TAG for tag objects 7. USER for user objects 8. USER_GROUP for group objects 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values. 10. INSIGHT_SPEC for SpotIQ objects */ - 'values': Array; + 'type': ExcludeMetadataListItemInputTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6228,7 +6120,7 @@ declare class FilterRules { }[]; constructor(); } -type FilterRulesOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; +type ExcludeMetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -6241,11 +6133,26 @@ type FilterRulesOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ForceLogoutUsersRequest { +/** +* Options for specific region specific overrides to support date/number/string/currency formatting. +*/ +declare class ExportAnswerReportRequestRegionalSettings { /** - * GUID or name of the users for force logging out their sessions. + * ISO code to be appended with currency values. */ - 'user_identifiers'?: Array; + 'currency_format'?: ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum | null; + /** + * Indicates the locale to be used for all formattings. + */ + 'user_locale'?: ExportAnswerReportRequestRegionalSettingsUserLocaleEnum | null; + /** + * Indicates the locale to be used for number formatting. + */ + 'number_format_locale'?: ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum | null; + /** + * Indicates the locale to be used for date formatting. + */ + 'date_format_locale'?: ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6261,6 +6168,10 @@ declare class ForceLogoutUsersRequest { }[]; constructor(); } +type ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; +type ExportAnswerReportRequestRegionalSettingsUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -6274,11 +6185,36 @@ declare class ForceLogoutUsersRequest { * Do not edit the class manually. */ -/** -* Configuration of schedule with cron expression -*/ -declare class Frequency { - 'cron_expression': CronExpression; +declare class ExportAnswerReportRequest { + /** + * Unique ID or name of the metadata object. + */ + 'metadata_identifier'?: string; + /** + * Unique ID of the answer session. + */ + 'session_identifier'?: string; + /** + * Generation number of the answer session. + */ + 'generation_number'?: number; + /** + * Export file format. + */ + 'file_format'?: ExportAnswerReportRequestFileFormatEnum; + /** + * JSON string representing runtime filter. { col1:region, op1: EQ, val1: northeast } + */ + 'runtime_filter'?: any; + /** + * JSON string representing runtime sort. { sortCol1: region, asc1 :true, sortCol2 : date } + */ + 'runtime_sort'?: any; + /** + * JSON object for setting values of parameters in runtime. + */ + 'runtime_param_override'?: any; + 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6294,6 +6230,7 @@ declare class Frequency { }[]; constructor(); } +type ExportAnswerReportRequestFileFormatEnum = "CSV" | "PDF" | "XLSX" | "PNG"; /** * ThoughtSpot Public REST API @@ -6306,68 +6243,38 @@ declare class Frequency { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Configuration of schedule with cron expression +* Options for PDF export. */ -declare class FrequencyInput { - 'cron_expression': CronExpressionInput; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} - -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class GenerateCSVRequest { +declare class ExportLiveboardReportRequestPdfOptions { /** - * Start date for the calendar in `MM/dd/yyyy` format. + * Indicates whether to include the cover page with the Liveboard title. */ - 'start_date': string; + 'include_cover_page'?: boolean | null; /** - * End date for the calendar in `MM/dd/yyyy` format. + * Indicates whether to include customized wide logo in the footer if available. */ - 'end_date': string; + 'include_custom_logo'?: boolean | null; /** - * Type of the calendar. + * Indicates whether to include a page with all applied filters. */ - 'calendar_type'?: GenerateCSVRequestCalendarTypeEnum; + 'include_filter_page'?: boolean | null; /** - * Month offset to start calendar from `January`. + * Indicates whether to include page number in the footer of each page. */ - 'month_offset'?: GenerateCSVRequestMonthOffsetEnum; + 'include_page_number'?: boolean | null; /** - * Specify the starting day of the week. + * Page orientation of the PDF. */ - 'start_day_of_week'?: GenerateCSVRequestStartDayOfWeekEnum; + 'page_orientation'?: ExportLiveboardReportRequestPdfOptionsPageOrientationEnum | null; /** - * Prefix to add before the quarter. + * Indicates whether to include only the first page of the tables. */ - 'quarter_name_prefix'?: string; + 'truncate_table'?: boolean | null; /** - * Prefix to add before the year. + * Text to include in the footer of each page. */ - 'year_name_prefix'?: string; + 'page_footer_text'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6383,9 +6290,7 @@ declare class GenerateCSVRequest { }[]; constructor(); } -type GenerateCSVRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; -type GenerateCSVRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; -type GenerateCSVRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; +type ExportLiveboardReportRequestPdfOptionsPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; /** * ThoughtSpot Public REST API @@ -6398,9 +6303,34 @@ type GenerateCSVRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "W * https://openapi-generator.tech * Do not edit the class manually. */ -declare class GenericInfo { - 'id'?: string | null; - 'name'?: string | null; +/** +* Options for PNG export. +*/ +declare class ExportLiveboardReportRequestPngOptions { + /** + * Indicates whether to include the cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates personalised view of the Liveboard in case of png + */ + 'personalised_view_id'?: string | null; + /** + * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later + */ + 'image_resolution'?: number | null; + /** + * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later + */ + 'image_scale'?: number | null; + /** + * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later + */ + 'include_header'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6428,67 +6358,51 @@ declare class GenericInfo { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportEPackAsyncTaskStatus { - /** - * GUID of tenant from which the task is initiated. - */ - 'tenant_id'?: string | null; - /** - * Organisation ID of the user who initiated the task. - */ - 'org_id'?: number | null; - /** - * Unique identifier for the task. - */ - 'task_id'?: string | null; - /** - * Name of the task. - */ - 'task_name'?: string | null; - /** - * Response of imported objects so far. - */ - 'import_response'?: any | null; + +declare class ExportLiveboardReportRequest { /** - * Current status of the task. + * GUID or name of the Liveboard object. */ - 'task_status'?: ImportEPackAsyncTaskStatusTaskStatusEnum | null; + 'metadata_identifier': string; /** - * ID of the user who initiated the task. + * GUID or name of the tab of the Liveboard object. Version: 10.9.0.cl or later */ - 'author_id'?: string | null; + 'tab_identifiers'?: Array; /** - * Policy used for the import task. + * GUID or name of the personalised view of the Liveboard object. Version: 10.9.0.cl or later */ - 'import_policy'?: ImportEPackAsyncTaskStatusImportPolicyEnum | null; + 'personalised_view_identifier'?: string; /** - * Time when the task was created (in ms since epoch). + * GUID or name of visualizations on the Liveboard. If this parameter is not defined, the API returns a report with all visualizations saved on a Liveboard. */ - 'created_at'?: number | null; + 'visualization_identifiers'?: Array; /** - * Time when the task started (in ms since epoch). + * Transient content of the Liveboard. */ - 'in_progress_at'?: number | null; + 'transient_content'?: string; /** - * Time when the task was completed (in ms since epoch). + * Export file format. */ - 'completed_at'?: number | null; + 'file_format'?: ExportLiveboardReportRequestFileFormatEnum; /** - * Total number of objects to process. + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"region\", \"op1\": \"EQ\", \"val1\": \"northeast\" }. You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). */ - 'total_object_count'?: number | null; + 'runtime_filter'?: any; /** - * Number of objects processed so far. + * Applied to the liveboard and overrides any filters already applied on the same columns in liveboard. Following example illustrate different kinds of filters: { \"override_filters\": [ { \"column_name\": \"Color\", \"generic_filter\": { \"op\": \"IN\", \"values\": [ \"almond\", \"turquoise\" ] }, \"negate\": false }, { \"column_name\": \"Commit Date\", \"date_filter\": { \"datePeriod\": \"HOUR\", \"number\": 3, \"type\": \"LAST_N_PERIOD\", \"op\": \"EQ\" } }, { \"column_name\": \"Sales\", \"generic_filter\": { \"op\": \"BW_INC\", \"values\": [ \"100000\", \"70000\" ] }, \"negate\": true } ] } */ - 'object_processed_count'?: number | null; + 'override_filters'?: any; /** - * Last time the task status was updated (in ms since epoch). + * JSON string representing runtime sort. For example, {\"sortCol1\": \"region\", \"asc1\" : true}. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). */ - 'modified_at'?: number | null; + 'runtime_sort'?: any; + 'pdf_options'?: ExportLiveboardReportRequestPdfOptions; + 'png_options'?: ExportLiveboardReportRequestPngOptions; /** - * Display name of the user who initiated the task. + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). */ - 'author_display_name'?: string | null; + 'runtime_param_override'?: any; + 'regional_settings'?: ExportAnswerReportRequestRegionalSettings; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6504,8 +6418,7 @@ declare class ImportEPackAsyncTaskStatus { }[]; constructor(); } -type ImportEPackAsyncTaskStatusTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; -type ImportEPackAsyncTaskStatusImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; +type ExportLiveboardReportRequestFileFormatEnum = "PDF" | "PNG"; /** * ThoughtSpot Public REST API @@ -6518,16 +6431,31 @@ type ImportEPackAsyncTaskStatusImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "V * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class GetAsyncImportStatusResponse { +declare class ExportMetadataTMLBatchedRequest { /** - * List of task statuses. + * Type of metadata object to export, can be one of USER | ROLE | USER_GROUP */ - 'status_list'?: Array | null; + 'metadata_type': ExportMetadataTMLBatchedRequestMetadataTypeEnum; /** - * Indicates whether there are more task statuses to fetch. + * Indicates the position within the complete set from where the API should begin returning objects. */ - 'last_batch'?: boolean | null; + 'batch_offset'?: number; + /** + * Determines the number of objects or items to be retrieved in a single request. + */ + 'batch_size'?: number; + /** + * TML EDOC content format. + */ + 'edoc_format'?: ExportMetadataTMLBatchedRequestEdocFormatEnum; + /** + * Indicates whether to export dependent metadata objects of specified metadata objects. + */ + 'export_dependent'?: boolean | null; + /** + * Indicates whether to export is happening from all orgs context. + */ + 'all_orgs_override'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6543,6 +6471,8 @@ declare class GetAsyncImportStatusResponse { }[]; constructor(); } +type ExportMetadataTMLBatchedRequestMetadataTypeEnum = "USER" | "USER_GROUP" | "ROLE"; +type ExportMetadataTMLBatchedRequestEdocFormatEnum = "JSON" | "YAML"; /** * ThoughtSpot Public REST API @@ -6556,10 +6486,33 @@ declare class GetAsyncImportStatusResponse { * Do not edit the class manually. */ /** -* Groups objects. +* Flags to specify additional options for export. Version: 10.6.0.cl or later */ -declare class GroupObject { - 'identifier'?: string | null; +declare class ExportMetadataTMLRequestExportOptions { + /** + * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. + */ + 'include_obj_id_ref'?: boolean | null; + /** + * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. + */ + 'include_guid'?: boolean | null; + /** + * 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. + */ + 'include_obj_id'?: boolean | null; + /** + * 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 + */ + 'export_with_associated_feedbacks'?: boolean | null; + /** + * 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 + */ + 'export_column_security_rules'?: boolean | null; + /** + * 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 + */ + 'export_with_column_aliases'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6588,17 +6541,25 @@ declare class GroupObject { * Do not edit the class manually. */ /** -* Filter Rules to be applied on Objects. +* MetadataType InputType used in Export MetadataType API */ -declare class ParameterValues { +declare class ExportMetadataTypeInput { /** - * The name of the column to apply the filter on. + * Type of metadata. 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. */ - 'name': string; + 'type'?: ExportMetadataTypeInputTypeEnum | null; /** - * The values to filter on. Only single value is supported currently. + * Unique ID or name of the metadata object. Not required if the metadata type is ANSWER when session_id and generation_number is set. */ - 'values': Array; + 'identifier'?: string | null; + /** + * Unique ID of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + */ + 'session_identifier'?: string | null; + /** + * Generation Number of the Answer session. Required if the metadata type is ANSWER and identifier is not set. + */ + 'generation_number'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6614,6 +6575,7 @@ declare class ParameterValues { }[]; constructor(); } +type ExportMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CONNECTION" | "CUSTOM_ACTION" | "USER" | "USER_GROUP" | "ROLE" | "FEEDBACK"; /** * ThoughtSpot Public REST API @@ -6626,18 +6588,41 @@ declare class ParameterValues { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Objects on which the filter rules and parameters values should be applied to -*/ -declare class TokenAccessScopeObject { + +declare class ExportMetadataTMLRequest { /** - * 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. + * Metadata objects. */ - 'type'?: TokenAccessScopeObjectTypeEnum | null; + 'metadata': Array; /** - * Unique name/id of the object. + * Indicates whether to export associated metadata objects of specified metadata objects. */ - 'identifier': string; + 'export_associated'?: boolean | null; + /** + * Adds FQNs of the referenced objects. For example, if you are exporting a Liveboard and its associated objects, the API returns the Liveboard TML data with the FQNs of the referenced worksheet. If the exported TML data includes FQNs, you don\'t need to manually add FQNs of the referenced objects during TML import. + */ + 'export_fqn'?: boolean | null; + /** + * TML EDOC content format. **Note: exporting in YAML format currently requires manual formatting of the output. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** + */ + 'edoc_format'?: ExportMetadataTMLRequestEdocFormatEnum; + /** + * Indicates whether to export worksheet TML in DEFAULT or V1 or V2 version. + */ + 'export_schema_version'?: ExportMetadataTMLRequestExportSchemaVersionEnum; + /** + * Indicates whether to export table while exporting connection. + */ + 'export_dependent'?: boolean | null; + /** + * Indicates whether to export connection as dependent while exporting table/worksheet/answer/liveboard. This will only be active when export_associated is true. + */ + 'export_connection_as_dependent'?: boolean | null; + /** + * Indicates whether to export is happening from all orgs context. + */ + 'all_orgs_override'?: boolean | null; + 'export_options'?: ExportMetadataTMLRequestExportOptions; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6653,7 +6638,8 @@ declare class TokenAccessScopeObject { }[]; constructor(); } -type TokenAccessScopeObjectTypeEnum = "LOGICAL_TABLE"; +type ExportMetadataTMLRequestEdocFormatEnum = "JSON" | "YAML"; +type ExportMetadataTMLRequestExportSchemaVersionEnum = "DEFAULT" | "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -6666,60 +6652,34 @@ type TokenAccessScopeObjectTypeEnum = "LOGICAL_TABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class GetCustomAccessTokenRequest { - /** - * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. - */ - 'username': string; - /** - * Password of the user account - */ - 'password'?: string; - /** - * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. - */ - 'secret_key'?: string; - /** - * Token validity duration in seconds - */ - 'validity_time_in_sec'?: number; - /** - * ID or name of the Org context to log in to. If the Org ID or name is not specified but a secret key is provided, the user will be logged into the Org associated with the secret key. If neither the Org ID/name nor the secret key is provided, the user will be logged into the Org context from their previous login session. - */ - 'org_identifier'?: string; - /** - * Indicates whether the specified attributes should be persisted or not. - */ - 'persist_option': GetCustomAccessTokenRequestPersistOptionEnum; - /** - * Filter rules. - */ - 'filter_rules'?: Array; +/** +* Flags to specify additional options for export. This will only be active when UserDefinedId in TML is enabled. +*/ +declare class ExportOptions { /** - * Parameter values. + * Boolean Flag to export Object ID of referenced object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. */ - 'parameter_values'?: Array; + 'include_obj_id_ref'?: boolean | null; /** - * Objects on which the filter rules and parameters values should be applied to + * Boolean flag to export guid of the object. This flag will work only after the Object ID feature has been enabled. Please contact support to enable the feature. */ - 'objects'?: Array; + 'include_guid'?: boolean | null; /** - * (just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user. + * 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. */ - 'email'?: string; + 'include_obj_id'?: boolean | null; /** - * (just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user. + * 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 */ - 'display_name'?: string; + 'export_with_associated_feedbacks'?: boolean | null; /** - * (just-in-time (JIT) provisioning) ID or name of the groups to which the newly created user belongs. Specify this attribute when creating a new user. + * 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 */ - 'groups'?: Array; + 'export_column_security_rules'?: boolean | null; /** - * 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. Version: 10.5.0.cl or later + * 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 */ - 'auto_create'?: boolean | null; + 'export_with_column_aliases'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6735,7 +6695,6 @@ declare class GetCustomAccessTokenRequest { }[]; constructor(); } -type GetCustomAccessTokenRequestPersistOptionEnum = "REPLACE" | "APPEND" | "NONE" | "RESET"; /** * ThoughtSpot Public REST API @@ -6748,18 +6707,23 @@ type GetCustomAccessTokenRequestPersistOptionEnum = "REPLACE" | "APPEND" | "NONE * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Objects to apply the User_Object. -*/ -declare class UserObject { +declare class ExternalTableInput { /** - * 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. + * Unique ID or name of the connection. */ - 'type'?: UserObjectTypeEnum | null; + 'connection_identifier': string; /** - * Unique name/id of the object. + * Name of the database. */ - 'identifier': string; + 'database_name'?: string | null; + /** + * Name of the schema. + */ + 'schema_name'?: string | null; + /** + * Name of the table. Table names may be case-sensitive depending on the database system. + */ + 'table_name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6775,7 +6739,6 @@ declare class UserObject { }[]; constructor(); } -type UserObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -6788,31 +6751,19 @@ type UserObjectTypeEnum = "LOGICAL_TABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Objects to apply the Runtime_Filters. -*/ -declare class RuntimeFilters { - /** - * The column name to apply filter. - */ - 'column_name': string; - /** - * Value of the filters. - */ - 'values': Array; +declare class FavoriteMetadataItem { /** - * Operator value. Example: EQ + * Unique ID of the metadata object. */ - 'operator': RuntimeFiltersOperatorEnum; + 'id': string; /** - * Flag to persist the runtime filters. Version: 9.12.0.cl or later + * name of the metadata object. */ - 'persist'?: boolean | null; + 'name': string; /** - * Object to apply the runtime filter. + * Type of metadata 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. */ - 'objects'?: Array | null; + 'type': FavoriteMetadataItemTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6828,7 +6779,7 @@ declare class RuntimeFilters { }[]; constructor(); } -type RuntimeFiltersOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; +type FavoriteMetadataItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; /** * ThoughtSpot Public REST API @@ -6841,27 +6792,18 @@ type RuntimeFiltersOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Objects to apply the Runtime_Parameters. +* Favorite object options. */ -declare class RuntimeParameters { - /** - * The name of the parameter. - */ - 'name': string; - /** - * The array of values. - */ - 'values': Array; +declare class FavoriteObjectOptionsInput { /** - * Flag to persist the parameters. Version: 9.12.0.cl or later + * Includes objects marked as favorite for the specified users. */ - 'persist'?: boolean | null; + 'include'?: boolean | null; /** - * Object to apply the runtime parameter. + * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. */ - 'objects'?: Array | null; + 'user_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6889,27 +6831,35 @@ declare class RuntimeParameters { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Objects to apply the Runtime_Sorts. -*/ -declare class RuntimeSorts { +declare class FetchAnswerDataRequest { /** - * The column name to apply filter. + * GUID or name of the Answer. */ - 'column_name'?: string | null; + 'metadata_identifier': string; /** - * Order for the sort. + * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. */ - 'order'?: RuntimeSortsOrderEnum | null; + 'data_format'?: FetchAnswerDataRequestDataFormatEnum; /** - * Flag to persist the runtime sorts. Version: 9.12.0.cl or later + * The starting record number from where the records should be included. */ - 'persist'?: boolean | null; + 'record_offset'?: number; /** - * Object to apply the runtime sort. + * The number of records to include in a batch. */ - 'objects'?: Array | null; + 'record_size'?: number; + /** + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). + */ + 'runtime_filter'?: any; + /** + * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). + */ + 'runtime_sort'?: any; + /** + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + */ + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6925,7 +6875,7 @@ declare class RuntimeSorts { }[]; constructor(); } -type RuntimeSortsOrderEnum = "ASC" | "DESC"; +type FetchAnswerDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -6938,24 +6888,11 @@ type RuntimeSortsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -*
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). -*/ -declare class GetFullAccessTokenRequestUserParameters { - 'objects'?: Array | null; - /** - * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` - */ - 'runtime_filters'?: Array | null; - /** - * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` - */ - 'runtime_sorts'?: Array | null; +declare class FetchAnswerSqlQueryRequest { /** - * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + * ID or name of an Answer. */ - 'parameters'?: Array | null; + 'metadata_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -6983,45 +6920,31 @@ declare class GetFullAccessTokenRequestUserParameters { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class GetFullAccessTokenRequest { - /** - * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. - */ - 'username': string; - /** - * Password of the user account - */ - 'password'?: string; - /** - * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. - */ - 'secret_key'?: string; +declare class FetchAsyncImportTaskStatusRequest { /** - * Token validity duration in seconds + * List of task IDs to fetch status for. */ - 'validity_time_in_sec'?: number; + 'task_ids'?: Array; /** - * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. + * List of task statuses to filter on. Valid values: [IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED] */ - 'org_id'?: number; + 'task_status'?: Array; /** - * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). + * Author GUID or name of async import tasks to filter on. */ - 'email'?: string; + 'author_identifier'?: string; /** - * Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT). + * The offset point, starting from where the task status should be included in the response. */ - 'display_name'?: string; + 'record_offset'?: number; /** - * 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. + * The number of task statuses that should be included in the response starting from offset position. */ - 'auto_create'?: boolean | null; + 'record_size'?: number; /** - * ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT). + * Boolean flag to specify whether to include import response in the task status objects. */ - 'group_identifiers'?: Array; - 'user_parameters'?: GetFullAccessTokenRequestUserParameters; + 'include_import_response'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7037,6 +6960,7 @@ declare class GetFullAccessTokenRequest { }[]; constructor(); } +type FetchAsyncImportTaskStatusRequestTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; /** * ThoughtSpot Public REST API @@ -7050,48 +6974,11 @@ declare class GetFullAccessTokenRequest { * Do not edit the class manually. */ -declare class GetObjectAccessTokenRequest { - /** - * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. - */ - 'username': string; - /** - * GUID of the ThoughtSpot metadata object that the user can access. The bearer will only have access to the object specified in the API request. - */ - 'object_id'?: string; - /** - * Password of the user account - */ - 'password'?: string; - /** - * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. - */ - 'secret_key'?: string; - /** - * Token validity duration in seconds - */ - 'validity_time_in_sec'?: number; - /** - * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. - */ - 'org_id'?: number; - /** - * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). - */ - 'email'?: string; - /** - * Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). - */ - 'display_name'?: string; - /** - * 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. - */ - 'auto_create'?: boolean | null; +declare class FetchColumnSecurityRulesRequest { /** - * 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. + * Array of table identifier objects for which to fetch column security rules */ - 'group_identifiers'?: Array; - 'user_parameters'?: GetFullAccessTokenRequestUserParameters; + 'tables': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7119,27 +7006,11 @@ declare class GetObjectAccessTokenRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class GetTokenResponse { - /** - * Bearer auth token. - */ - 'token': string; - /** - * Token creation time in milliseconds. - */ - 'creation_time_in_millis': number; - /** - * Token expiration time in milliseconds. - */ - 'expiration_time_in_millis': number; - /** - * Username to whom the token is issued. - */ - 'valid_for_user_id': string; +declare class FetchConnectionDiffStatusResponse { /** - * Unique identifier of the user to whom the token is issued. + * Status of the connection diff. */ - 'valid_for_username': string; + 'status'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7167,43 +7038,43 @@ declare class GetTokenResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class GroupsImportListInput { +declare class FetchLiveboardDataRequest { /** - * Unique display name of the group. + * GUID or name of the Liveboard. */ - 'display_name': string; + 'metadata_identifier': string; /** - * Unique ID or name of the group. + * GUIDs or names of the visualizations on the Liveboard. */ - 'group_identifier': string; + 'visualization_identifiers'?: Array; /** - * Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group. + * Transient content of the Liveboard. */ - 'default_liveboard_identifiers'?: Array | null; + 'transient_content'?: string; /** - * Description of the group. + * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. */ - 'description'?: string | null; + 'data_format'?: FetchLiveboardDataRequestDataFormatEnum; /** - * Privileges that will be assigned to the group. + * The starting record number from where the records should be included. */ - 'privileges'?: Array | null; + 'record_offset'?: number; /** - * Unique ID or name of the sub-groups to add to the group. + * The number of records to include in a batch. */ - 'sub_group_identifiers'?: Array | null; + 'record_size'?: number; /** - * Type of the group. + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). */ - 'type'?: GroupsImportListInputTypeEnum | null; + 'runtime_filter'?: any; /** - * Unique ID or name of the users to assign to the group. + * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). */ - 'user_identifiers'?: Array | null; + 'runtime_sort'?: any; /** - * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). */ - 'visibility'?: GroupsImportListInputVisibilityEnum | null; + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7219,9 +7090,7 @@ declare class GroupsImportListInput { }[]; constructor(); } -type GroupsImportListInputPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type GroupsImportListInputTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type FetchLiveboardDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -7234,18 +7103,15 @@ type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Attribute to update in a header. -*/ -declare class HeaderAttributeInput { +declare class FetchLiveboardSqlQueryRequest { /** - * Attribute name to be updated. + * ID or name of the Liveboard. */ - 'name': string; + 'metadata_identifier': string; /** - * Attribute\'s new value. + * Unique ID or name of visualizations. */ - 'value': string; + 'visualization_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7273,27 +7139,23 @@ declare class HeaderAttributeInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Favorite object options. -*/ -declare class HeaderUpdateInput { +declare class FetchLogsRequest { /** - * Unique ID of a specified type to identify the header. + * Name of the log type */ - 'identifier'?: string | null; + 'log_type': FetchLogsRequestLogTypeEnum; /** - * Custom object identifier to uniquely identify header. + * Start time in EPOCH format */ - 'obj_identifier'?: string | null; + 'start_epoch_time_in_millis'?: number; /** - * Optional type of the header object. + * End time in EPOCH format */ - 'type'?: HeaderUpdateInputTypeEnum | null; + 'end_epoch_time_in_millis'?: number; /** - * List of attributes to update + * Fetch all the logs. This is available from 9.10.5.cl */ - 'attributes': Array; + 'get_all_logs'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7309,7 +7171,7 @@ declare class HeaderUpdateInput { }[]; constructor(); } -type HeaderUpdateInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; +type FetchLogsRequestLogTypeEnum = "SECURITY_AUDIT"; /** * ThoughtSpot Public REST API @@ -7322,31 +7184,18 @@ type HeaderUpdateInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportMetadataTMLAsyncRequest { - /** - * Details of TML objects. - */ - 'metadata_tmls': Array; - /** - * If selected, creates TML objects with new GUIDs. - */ - 'create_new'?: boolean | null; - /** - * If import is happening from all orgs context. - */ - 'all_orgs_override'?: boolean | null; - /** - *
Version: 10.5.0.cl or later
Policy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE] - */ - 'import_policy'?: ImportMetadataTMLAsyncRequestImportPolicyEnum; +/** +* MetadataType InputType used in Permission API\'s +*/ +declare class PermissionsMetadataTypeInput { /** - *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. + * Type of metadata 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. */ - 'skip_diff_check'?: boolean | null; + 'type'?: PermissionsMetadataTypeInputTypeEnum | null; /** - *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. + * Unique ID or name of the metadata object. */ - 'enable_large_metadata_validation'?: boolean | null; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7362,7 +7211,7 @@ declare class ImportMetadataTMLAsyncRequest { }[]; constructor(); } -type ImportMetadataTMLAsyncRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; +type PermissionsMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -7375,31 +7224,15 @@ type ImportMetadataTMLAsyncRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportMetadataTMLRequest { - /** - * Details of TML objects. **Note: importing TML in YAML format, when coming directly from our Playground, is currently requires manual formatting. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** - */ - 'metadata_tmls': Array; - /** - * Specifies the import policy for the TML import. - */ - 'import_policy'?: ImportMetadataTMLRequestImportPolicyEnum; - /** - * If selected, creates TML objects with new GUIDs. - */ - 'create_new'?: boolean | null; - /** - * If import is happening from all orgs context. - */ - 'all_orgs_override'?: boolean | null; +declare class PrincipalsInput { /** - *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. + * Unique ID or name of the principal object such as a user or group. */ - 'skip_diff_check'?: boolean | null; + 'identifier': string; /** - *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. + * Principal type. */ - 'enable_large_metadata_validation'?: boolean | null; + 'type'?: PrincipalsInputTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7415,7 +7248,7 @@ declare class ImportMetadataTMLRequest { }[]; constructor(); } -type ImportMetadataTMLRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; +type PrincipalsInputTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -7429,63 +7262,81 @@ type ImportMetadataTMLRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VAL * Do not edit the class manually. */ -declare class ImportUser { - /** - * Unique ID or name of the user. - */ - 'user_identifier': string; - /** - * Display name of the user. - */ - 'display_name': string; - /** - * Password of the user. - */ - 'password'?: string | null; +declare class FetchPermissionsOfPrincipalsRequest { /** - * Type of the user account. + * GUID or name of the user or group. */ - 'account_type'?: ImportUserAccountTypeEnum | null; + 'principals': Array; /** - * Status of the user account. + * Metadata objects for which you want to fetch permission details. If not specified, the API returns permission details for all metadata objects that the specified users and groups can access. */ - 'account_status'?: ImportUserAccountStatusEnum | null; + 'metadata'?: Array; /** - * Email address of the user. + * The starting record number from where the records should be included for each metadata type. */ - 'email'?: string | null; + 'record_offset'?: number; /** - * ID or name of the Orgs to which the user belongs. + * The number of records that should be included for each metadata type. */ - 'org_identifiers'?: Array | null; + 'record_size'?: number; /** - * ID or name of the groups to which the user belongs. + * When no metadata objects input is passed, metadata objects of this type are fetched. */ - 'group_identifiers'?: Array | null; + 'default_metadata_type'?: FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum = "ALL" | "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class FetchPermissionsOnMetadataRequest { /** - * Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user. + * GUID or name of the metadata object. */ - 'visibility'?: ImportUserVisibilityEnum | null; + 'metadata': Array; /** - * Notify user when other users or groups share metadata objects + * User or group objects for which you want to fetch permissions. If not specified, the API returns all users and groups that can access the specified metadata objects. */ - 'notify_on_share'?: boolean | null; + 'principals'?: Array; /** - * Show or hide the new user onboarding walkthroughs + * Indicates whether to fetch permissions of dependent metadata objects. */ - 'show_onboarding_experience'?: boolean | null; + 'include_dependent_objects'?: boolean | null; /** - * Revisit the new user onboarding walkthroughs + * The starting record number from where the records should be included for each metadata type. */ - 'onboarding_experience_completed'?: boolean | null; + 'record_offset'?: number; /** - * Unique ID or name of the default Liveboard assigned to the user. + * The number of records that should be included for each metadata type. */ - 'home_liveboard_identifier'?: string | null; + 'record_size'?: number; /** - * Metadata objects to add to the user\'s favorites list. + *
Version: 10.3.0.cl or later
Specifies the type of permission. Valid values are: EFFECTIVE - If the user permission to the metadata objects is granted by the privileges assigned to the groups to which they belong. DEFINED - If a user or user group received access to metadata objects via object sharing by another user. */ - 'favorite_metadata'?: Array | null; + 'permission_type'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7501,9 +7352,6 @@ declare class ImportUser { }[]; constructor(); } -type ImportUserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type ImportUserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type ImportUserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -7516,20 +7364,22 @@ type ImportUserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ImportUserGroupsRequest { +/** +* Filter Rules to be applied on Objects. +*/ +declare class FilterRules { /** - * Details of groups which are to be imported + * The name of the column to apply the filter on. */ - 'groups'?: Array; + 'column_name': string; /** - * If set to true, removes groups that are not specified in the API request. + * The operator to use for filtering. Example: EQ (equals), GT(greater than), etc. */ - 'delete_unspecified_groups'?: boolean | null; + 'operator': FilterRulesOperatorEnum; /** - * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. + * The values to filter on. To get all records, use TS_WILDCARD_ALL as values. */ - 'dry_run'?: boolean | null; + 'values': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7545,6 +7395,7 @@ declare class ImportUserGroupsRequest { }[]; constructor(); } +type FilterRulesOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; /** * ThoughtSpot Public REST API @@ -7557,9 +7408,11 @@ declare class ImportUserGroupsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UserGroup { - 'id'?: string | null; - 'name'?: string | null; +declare class ForceLogoutUsersRequest { + /** + * GUID or name of the users for force logging out their sessions. + */ + 'user_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7588,19 +7441,11 @@ declare class UserGroup { * Do not edit the class manually. */ -declare class ImportUserGroupsResponse { - /** - * The groups which are added into the system. - */ - 'groups_added': Array; - /** - * The groups which are deleted from the system. - */ - 'groups_deleted': Array; - /** - * The groups which are updated in the system. - */ - 'groups_updated': Array; +/** +* Configuration of schedule with cron expression +*/ +declare class Frequency { + 'cron_expression': CronExpression; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7628,15 +7473,12 @@ declare class ImportUserGroupsResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ImportUserType { - /** - * Unique identifier of the user. - */ - 'id'?: string | null; - /** - * Name of the user. - */ - 'name': string; + +/** +* Configuration of schedule with cron expression +*/ +declare class FrequencyInput { + 'cron_expression': CronExpressionInput; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7664,24 +7506,35 @@ declare class ImportUserType { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ImportUsersRequest { +declare class GenerateCSVRequest { /** - * List of users needs to be imported. + * Start date for the calendar in `MM/dd/yyyy` format. */ - 'users': Array; + 'start_date': string; /** - * The default password to assign to users if they do not have a password assigned in ThoughtSpot. + * End date for the calendar in `MM/dd/yyyy` format. */ - 'default_password'?: string; + 'end_date': string; /** - * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. + * Type of the calendar. */ - 'dry_run'?: boolean | null; + 'calendar_type'?: GenerateCSVRequestCalendarTypeEnum; /** - * If set to true, removes the users that are not specified in the API request. + * Month offset to start calendar from `January`. */ - 'delete_unspecified_users'?: boolean | null; + 'month_offset'?: GenerateCSVRequestMonthOffsetEnum; + /** + * Specify the starting day of the week. + */ + 'start_day_of_week'?: GenerateCSVRequestStartDayOfWeekEnum; + /** + * Prefix to add before the quarter. + */ + 'quarter_name_prefix'?: string; + /** + * Prefix to add before the year. + */ + 'year_name_prefix'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7697,6 +7550,9 @@ declare class ImportUsersRequest { }[]; constructor(); } +type GenerateCSVRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; +type GenerateCSVRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; +type GenerateCSVRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; /** * ThoughtSpot Public REST API @@ -7709,11 +7565,9 @@ declare class ImportUsersRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ImportUsersResponse { - 'users_added'?: Array | null; - 'users_updated'?: Array | null; - 'users_deleted'?: Array | null; +declare class GenericInfo { + 'id'?: string | null; + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7741,23 +7595,67 @@ declare class ImportUsersResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class InputEurekaNLSRequest { +declare class ImportEPackAsyncTaskStatus { /** - * Cluster version like 10.4.0.cl, 10.5.0.cl, so on. + * GUID of tenant from which the task is initiated. */ - 'agentVersion'?: number | null; + 'tenant_id'?: string | null; /** - * If true, results are not returned from cache & calculated every time. Can incur high costs & latency. + * Organisation ID of the user who initiated the task. */ - 'bypassCache'?: boolean | null; + 'org_id'?: number | null; /** - * User specific instructions for processing the @query. + * Unique identifier for the task. */ - 'instructions'?: Array | null; + 'task_id'?: string | null; /** - * User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions. + * Name of the task. */ - 'query'?: string | null; + 'task_name'?: string | null; + /** + * Response of imported objects so far. + */ + 'import_response'?: any | null; + /** + * Current status of the task. + */ + 'task_status'?: ImportEPackAsyncTaskStatusTaskStatusEnum | null; + /** + * ID of the user who initiated the task. + */ + 'author_id'?: string | null; + /** + * Policy used for the import task. + */ + 'import_policy'?: ImportEPackAsyncTaskStatusImportPolicyEnum | null; + /** + * Time when the task was created (in ms since epoch). + */ + 'created_at'?: number | null; + /** + * Time when the task started (in ms since epoch). + */ + 'in_progress_at'?: number | null; + /** + * Time when the task was completed (in ms since epoch). + */ + 'completed_at'?: number | null; + /** + * Total number of objects to process. + */ + 'total_object_count'?: number | null; + /** + * Number of objects processed so far. + */ + 'object_processed_count'?: number | null; + /** + * Last time the task status was updated (in ms since epoch). + */ + 'modified_at'?: number | null; + /** + * Display name of the user who initiated the task. + */ + 'author_display_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7773,6 +7671,8 @@ declare class InputEurekaNLSRequest { }[]; constructor(); } +type ImportEPackAsyncTaskStatusTaskStatusEnum = "COMPLETED" | "IN_QUEUE" | "IN_PROGRESS" | "FAILED"; +type ImportEPackAsyncTaskStatusImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; /** * ThoughtSpot Public REST API @@ -7785,12 +7685,48 @@ declare class InputEurekaNLSRequest { * https://openapi-generator.tech * Do not edit the class manually. */ + +declare class GetAsyncImportStatusResponse { + /** + * List of task statuses. + */ + 'status_list'?: Array | null; + /** + * Indicates whether there are more task statuses to fetch. + */ + 'last_batch'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** -* Metadata objects. + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Groups objects. */ -declare class JWTMetadataObject { +declare class GroupObject { 'identifier'?: string | null; - 'type'?: JWTMetadataObjectTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7806,7 +7742,6 @@ declare class JWTMetadataObject { }[]; constructor(); } -type JWTMetadataObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -7820,21 +7755,17 @@ type JWTMetadataObjectTypeEnum = "LOGICAL_TABLE"; * Do not edit the class manually. */ /** -* List of runtime parameters need to set during the session. +* Filter Rules to be applied on Objects. */ -declare class JWTParameter { - /** - * Runtime filter parameter type in JWT. - */ - 'runtime_filter'?: any | null; +declare class ParameterValues { /** - * Runtime sort parameter type in JWT. + * The name of the column to apply the filter on. */ - 'runtime_sort'?: any | null; + 'name': string; /** - * Runtime param override type in JWT. + * The values to filter on. Only single value is supported currently. */ - 'runtime_param_override'?: any | null; + 'values': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7862,13 +7793,18 @@ declare class JWTParameter { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* +* Objects on which the filter rules and parameters values should be applied to */ -declare class JWTUserOptions { - 'parameters'?: Array; - 'metadata'?: Array | null; +declare class TokenAccessScopeObject { + /** + * 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`. + */ + 'type'?: TokenAccessScopeObjectTypeEnum | null; + /** + * Unique name/id of the object. + */ + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7884,6 +7820,7 @@ declare class JWTUserOptions { }[]; constructor(); } +type TokenAccessScopeObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -7896,12 +7833,18 @@ declare class JWTUserOptions { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* +* Variable values. */ -declare class JWTUserOptionsFull { - 'parameters'?: Array | null; +declare class VariableValues { + /** + * The name of the existing formula variable. + */ + 'name': string; + /** + * The values to filter on. + */ + 'values': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7929,43 +7872,64 @@ declare class JWTUserOptionsFull { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class LiveboardContent { + +declare class GetCustomAccessTokenRequest { /** - * Total available data row count. + * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. */ - 'available_data_row_count': number; + 'username': string; /** - * Name of the columns. + * Password of the user account */ - 'column_names': Array; + 'password'?: string; /** - * Rows of data set. + * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. */ - 'data_rows': Array; + 'secret_key'?: string; /** - * The starting record number from where the records should be included. + * Token validity duration in seconds */ - 'record_offset': number; + 'validity_time_in_sec'?: number; /** - * The number of records that should be included. + * ID or name of the Org context to log in to. If the Org ID or name is not specified but a secret key is provided, the user will be logged into the Org associated with the secret key. If neither the Org ID/name nor the secret key is provided, the user will be logged into the Org context from their previous login session. */ - 'record_size': number; + 'org_identifier'?: string; /** - * Total returned data row count. + * Indicates whether the specified attributes should be persisted or not. RESET and NONE are not applicable if you are setting variable_values. */ - 'returned_data_row_count': number; + 'persist_option': GetCustomAccessTokenRequestPersistOptionEnum; /** - * Sampling ratio (0 to 1). If the query was sampled, it is the ratio of keys returned in the data set to the total number of keys expected in the query. If the value is 1.0, this means that the complete result is returned. + * Filter rules. */ - 'sampling_ratio': number; + 'filter_rules'?: Array; /** - * Unique ID of the visualization. + * Parameter values. */ - 'visualization_id'?: string | null; + 'parameter_values'?: Array; /** - * Name of the visualization. + * List of variable values where `name` references an existing formula variable and `values` is any value from the corresponding column. Version: 10.14.0.cl or later */ - 'visualization_name'?: string | null; + 'variable_values'?: Array; + /** + * Objects on which the filter rules and parameters values should be applied to + */ + 'objects'?: Array; + /** + * (just-in-time (JIT) provisioning)Email address of the user. Specify this attribute when creating a new user. + */ + 'email'?: string; + /** + * (just-in-time (JIT) provisioning) Indicates display name of the user. Specify this attribute when creating a new user. + */ + 'display_name'?: string; + /** + * (just-in-time (JIT) provisioning) ID or name of the groups to which the newly created user belongs. Specify this attribute when creating a new user. + */ + 'groups'?: Array; + /** + * 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. New formula variables won\'t be created. Version: 10.5.0.cl or later + */ + 'auto_create'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -7981,6 +7945,7 @@ declare class LiveboardContent { }[]; constructor(); } +type GetCustomAccessTokenRequestPersistOptionEnum = "REPLACE" | "APPEND" | "NONE" | "RESET"; /** * ThoughtSpot Public REST API @@ -7993,20 +7958,11 @@ declare class LiveboardContent { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class LiveboardDataResponse { - /** - * The unique identifier of the object - */ - 'metadata_id': string; - /** - * Name of the metadata object - */ - 'metadata_name': string; +declare class GetDataSourceSuggestionsRequest { /** - * Data content of metadata objects + * User query used to suggest data sources. */ - 'contents': Array; + 'query': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8035,13 +7991,17 @@ declare class LiveboardDataResponse { * Do not edit the class manually. */ /** -* Options to specify details of Liveboard. +* Objects to apply the User_Object. */ -declare class LiveboardOptions { +declare class UserObject { /** - * Unique ID or name of visualizations. + * 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`. */ - 'visualization_identifiers': Array; + 'type'?: UserObjectTypeEnum | null; + /** + * Unique name/id of the object. + */ + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8057,6 +8017,7 @@ declare class LiveboardOptions { }[]; constructor(); } +type UserObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -8069,14 +8030,31 @@ declare class LiveboardOptions { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Options to specify details of Liveboard. +* Objects to apply the Runtime_Filters. */ -declare class LiveboardOptionsInput { +declare class RuntimeFilters { /** - * Unique ID or name of visualizations. + * The column name to apply filter. */ - 'visualization_identifiers': Array; + 'column_name': string; + /** + * Value of the filters. + */ + 'values': Array; + /** + * Operator value. Example: EQ + */ + 'operator': RuntimeFiltersOperatorEnum; + /** + * Flag to persist the runtime filters. Version: 9.12.0.cl or later + */ + 'persist'?: boolean | null; + /** + * Object to apply the runtime filter. + */ + 'objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8092,6 +8070,7 @@ declare class LiveboardOptionsInput { }[]; constructor(); } +type RuntimeFiltersOperatorEnum = "EQ" | "NE" | "LT" | "LE" | "GT" | "GE" | "IN" | "BW" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BW_INC" | "BW_INC_MIN" | "BW_INC_MAX" | "LIKE" | "NOT_IN"; /** * ThoughtSpot Public REST API @@ -8104,15 +8083,27 @@ declare class LiveboardOptionsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class LogResponse { + +/** +* Objects to apply the Runtime_Parameters. +*/ +declare class RuntimeParameters { /** - * Date timestamp of the log entry + * The name of the parameter. */ - 'date': string; + 'name': string; /** - * Log data + * The array of values. */ - 'log': string; + 'values': Array; + /** + * Flag to persist the parameters. Version: 9.12.0.cl or later + */ + 'persist'?: boolean | null; + /** + * Object to apply the runtime parameter. + */ + 'objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8140,23 +8131,27 @@ declare class LogResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class LoginRequest { + +/** +* Objects to apply the Runtime_Sorts. +*/ +declare class RuntimeSorts { /** - * Username of the ThoughtSpot user + * The column name to apply filter. */ - 'username'?: string; + 'column_name'?: string | null; /** - * Password of the user account + * Order for the sort. */ - 'password'?: string; + 'order'?: RuntimeSortsOrderEnum | null; /** - * ID of the Org context to log in to. If Org ID is not specified, the user will be logged in to the Org context of their previous login session. + * Flag to persist the runtime sorts. Version: 9.12.0.cl or later */ - 'org_identifier'?: string; + 'persist'?: boolean | null; /** - * A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests. + * Object to apply the runtime sort. */ - 'remember_me'?: boolean | null; + 'objects'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8172,6 +8167,7 @@ declare class LoginRequest { }[]; constructor(); } +type RuntimeSortsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -8185,16 +8181,23 @@ declare class LoginRequest { * Do not edit the class manually. */ -declare class MetadataAssociationItem { - 'action_config': ActionConfig; +/** +*
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). +*/ +declare class GetFullAccessTokenRequestUserParameters { + 'objects'?: Array | null; /** - * Unique ID or name of the metadata. + * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` */ - 'identifier': string; + 'runtime_filters'?: Array | null; /** - * Type of metadata. 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. + * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` */ - 'type': string; + 'runtime_sorts'?: Array | null; + /** + * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + */ + 'parameters'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8222,58 +8225,45 @@ declare class MetadataAssociationItem { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class MetadataInput { - 'identifier'?: string | null; - 'type'?: MetadataInputTypeEnum | null; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} -type MetadataInputTypeEnum = "LIVEBOARD"; -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class MetadataListItemInput { +declare class GetFullAccessTokenRequest { /** - * Unique ID or name of the metadata. + * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. */ - 'identifier'?: string | null; + 'username': string; /** - * CustomObjectId of the metadata. + * Password of the user account */ - 'obj_identifier'?: string | null; + 'password'?: string; /** - * A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match. + * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. */ - 'name_pattern'?: string | null; + 'secret_key'?: string; /** - * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view. 5. CONNECTION for creating or modify data connections. 6. TAG for tag objects. 7. USER for user objects. 8. USER_GROUP for group objects. 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values 10. INSIGHT_SPEC for SpotIQ objects + * Token validity duration in seconds */ - 'type'?: MetadataListItemInputTypeEnum | null; + 'validity_time_in_sec'?: number; /** - * List of subtype of metadata. Applies for LOGICAL_TABLE type with the following valid values. 1. ONE_TO_ONE_LOGICAL 2. WORKSHEET 3. PRIVATE_WORKSHEET. 4. USER_DEFINED. 5. AGGR_WORKSHEET. 6. SQL_VIEW Version: 10.11.0.cl or later + * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. */ - 'subtypes'?: Array | null; + 'org_id'?: number; + /** + * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). + */ + 'email'?: string; + /** + * Indicates display name of the user. Use this parameter to provision a user just-in-time (JIT). + */ + 'display_name'?: string; + /** + * 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. + */ + 'auto_create'?: boolean | null; + /** + * ID or name of the groups to which the newly created user belongs. Use this parameter to provision a user just-in-time (JIT). + */ + 'group_identifiers'?: Array; + 'user_parameters'?: GetFullAccessTokenRequestUserParameters; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8289,8 +8279,6 @@ declare class MetadataListItemInput { }[]; constructor(); } -type MetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; -type MetadataListItemInputSubtypesEnum = "ONE_TO_ONE_LOGICAL" | "WORKSHEET" | "PRIVATE_WORKSHEET" | "USER_DEFINED" | "AGGR_WORKSHEET" | "SQL_VIEW"; /** * ThoughtSpot Public REST API @@ -8303,10 +8291,11 @@ type MetadataListItemInputSubtypesEnum = "ONE_TO_ONE_LOGICAL" | "WORKSHEET" | "P * https://openapi-generator.tech * Do not edit the class manually. */ -declare class MetadataResponse { - 'name'?: string | null; - 'id': string; - 'type': MetadataResponseTypeEnum; +declare class GetNLInstructionsRequest { + /** + * Unique ID or name of the data-model for which to retrieve NL instructions. + */ + 'data_source_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8322,7 +8311,6 @@ declare class MetadataResponse { }[]; constructor(); } -type MetadataResponseTypeEnum = "LIVEBOARD"; /** * ThoughtSpot Public REST API @@ -8335,50 +8323,49 @@ type MetadataResponseTypeEnum = "LIVEBOARD"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Metadata Search Response Object. -*/ -declare class MetadataSearchResponse { + +declare class GetObjectAccessTokenRequest { /** - * Unique identifier of the metadata. + * Username of the ThoughtSpot user. The username is stored in the `name` attribute of the user object. */ - 'metadata_id'?: string | null; + 'username': string; /** - * Name of the metadata. + * GUID of the ThoughtSpot metadata object that the user can access. The bearer will only have access to the object specified in the API request. */ - 'metadata_name'?: string | null; + 'object_id'?: string; /** - * Type of the metadata. + * Password of the user account */ - 'metadata_type': MetadataSearchResponseMetadataTypeEnum; + 'password'?: string; /** - * Custom identifier of the metadata. (Available from 10.8.0.cl onwards) + * The secret key string provided by the ThoughtSpot application server. ThoughtSpot generates a secret key when Trusted authentication is enabled. */ - 'metadata_obj_id'?: string | null; + 'secret_key'?: string; /** - * Details of dependent objects of the metadata objects. + * Token validity duration in seconds */ - 'dependent_objects'?: any | null; + 'validity_time_in_sec'?: number; /** - * Details of incomplete information of the metadata objects if any. + * ID of the Org context to log in to. If the Org ID is not specified and secret key is provided then user will be logged into the org corresponding to the secret key, and if secret key is not provided then user will be logged in to the Org context of their previous login session. */ - 'incomplete_objects'?: Array | null; + 'org_id'?: number; /** - * Complete details of the metadata objects. + * Email address of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). */ - 'metadata_detail'?: any | null; + 'email'?: string; /** - * Header information of the metadata objects. + * Display name of the user. Specify this attribute when creating a new user (just-in-time (JIT) provisioning). */ - 'metadata_header'?: any | null; + 'display_name'?: string; /** - * Visualization header information of the metadata objects. + * 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. */ - 'visualization_headers'?: Array | null; + 'auto_create'?: boolean | null; /** - * Stats of the metadata object. Includes views, favorites, last_accessed. + * 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. */ - 'stats'?: any | null; + 'group_identifiers'?: Array; + 'user_parameters'?: GetFullAccessTokenRequestUserParameters; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8394,7 +8381,6 @@ declare class MetadataSearchResponse { }[]; constructor(); } -type MetadataSearchResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -8408,17 +8394,17 @@ type MetadataSearchResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_ * Do not edit the class manually. */ /** -* Sort options. +* Additional context to guide the response. */ -declare class MetadataSearchSortOptions { +declare class GetRelevantQuestionsRequestAiContext { /** - * Name of the field to apply the sort on. + * User specific text instructions sent to AI system for processing the query. */ - 'field_name'?: MetadataSearchSortOptionsFieldNameEnum | null; + 'instructions'?: Array | null; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. */ - 'order'?: MetadataSearchSortOptionsOrderEnum | null; + 'content'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8434,8 +8420,6 @@ declare class MetadataSearchSortOptions { }[]; constructor(); } -type MetadataSearchSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; -type MetadataSearchSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -8448,19 +8432,26 @@ type MetadataSearchSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ModelTableList { +/** +* metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required. +*/ +declare class GetRelevantQuestionsRequestMetadataContext { /** - * Name of the Model. + * List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them. */ - 'model_name': string; + 'data_source_identifiers'?: Array | null; /** - * Model directory path, this is optional param and required if there are duplicate models with the same name. + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'model_path'?: string | null; + 'answer_identifiers'?: Array | null; /** - * List of Tables. + * Unique identifier to denote current conversation. */ - 'tables': Array; + 'conversation_identifier'?: string | null; + /** + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'liveboard_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8488,18 +8479,22 @@ declare class ModelTableList { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* The object representation with ID and Name. -*/ -declare class ObjectIDAndName { + +declare class GetRelevantQuestionsRequest { + 'metadata_context': GetRelevantQuestionsRequestMetadataContext; /** - * The unique identifier of the object. + * Maximum number of relevant questions that is allowed in the response, default = 5. */ - 'id'?: string | null; + 'limit_relevant_questions'?: number; /** - * Name of the object. + * If true, results are not returned from cache & calculated every time. */ - 'name'?: string | null; + 'bypass_cache'?: boolean | null; + /** + * A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis. + */ + 'query': string; + 'ai_context'?: GetRelevantQuestionsRequestAiContext; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8527,18 +8522,27 @@ declare class ObjectIDAndName { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* The current Org context of the user. -*/ -declare class Org { +declare class GetTokenResponse { /** - * The ID of the object. + * Bearer auth token. */ - 'id': number; + 'token': string; /** - * Name of the object. + * Token creation time in milliseconds. */ - 'name': string; + 'creation_time_in_millis': number; + /** + * Token expiration time in milliseconds. + */ + 'expiration_time_in_millis': number; + /** + * Username to whom the token is issued. + */ + 'valid_for_user_id': string; + /** + * Unique identifier of the user to whom the token is issued. + */ + 'valid_for_username': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8566,27 +8570,43 @@ declare class Org { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class OrgResponse { +declare class GroupsImportListInput { /** - * Unique identifier of the Org. + * Unique display name of the group. */ - 'id'?: number | null; + 'display_name': string; /** - * Name of the Org. + * Unique ID or name of the group. */ - 'name'?: string | null; + 'group_identifier': string; /** - * Status of the Org. + * Unique ID of Liveboards that will be assigned as default Liveboards to the users in the group. */ - 'status'?: OrgResponseStatusEnum | null; + 'default_liveboard_identifiers'?: Array | null; /** - * Description of the Org. + * Description of the group. */ 'description'?: string | null; /** - * Visibility of the Org. + * Privileges that will be assigned to the group. */ - 'visibility'?: OrgResponseVisibilityEnum | null; + 'privileges'?: Array | null; + /** + * Unique ID or name of the sub-groups to add to the group. + */ + 'sub_group_identifiers'?: Array | null; + /** + * Type of the group. + */ + 'type'?: GroupsImportListInputTypeEnum | null; + /** + * Unique ID or name of the users to assign to the group. + */ + 'user_identifiers'?: Array | null; + /** + * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + */ + 'visibility'?: GroupsImportListInputVisibilityEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8602,8 +8622,9 @@ declare class OrgResponse { }[]; constructor(); } -type OrgResponseStatusEnum = "ACTIVE" | "IN_ACTIVE"; -type OrgResponseVisibilityEnum = "SHOW" | "HIDDEN"; +type GroupsImportListInputPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type GroupsImportListInputTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -8616,27 +8637,18 @@ type OrgResponseVisibilityEnum = "SHOW" | "HIDDEN"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ParameterizeMetadataRequest { - /** - * Type of metadata object to parameterize. - */ - 'metadata_type'?: ParameterizeMetadataRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object to parameterize. - */ - 'metadata_identifier': string; - /** - * Type of field in the metadata to parameterize. - */ - 'field_type': ParameterizeMetadataRequestFieldTypeEnum; +/** +* Attribute to update in a header. +*/ +declare class HeaderAttributeInput { /** - * Name of the field which needs to be parameterized. + * Attribute name to be updated. */ - 'field_name': string; + 'name': string; /** - * Unique ID or name of the variable to use for parameterization + * Attribute\'s new value. */ - 'variable_identifier': string; + 'value': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8652,8 +8664,6 @@ declare class ParameterizeMetadataRequest { }[]; constructor(); } -type ParameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; -type ParameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; /** * ThoughtSpot Public REST API @@ -8666,46 +8676,27 @@ type ParameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPER * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Options for PDF export. +* Favorite object options. */ -declare class PdfOptions { - /** - * Indicates whether to include complete Liveboard. - */ - 'complete_liveboard'?: boolean | null; - /** - * Indicates whether to include cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page - */ - 'include_page_number'?: boolean | null; +declare class HeaderUpdateInput { /** - * Text to include in the footer of each page. + * Unique ID of a specified type to identify the header. */ - 'page_footer_text'?: string | null; + 'identifier'?: string | null; /** - * Page orientation of the PDF. + * Custom object identifier to uniquely identify header. */ - 'page_orientation'?: string | null; + 'obj_identifier'?: string | null; /** - * Page size. + * Optional type of the header object. */ - 'page_size'?: PdfOptionsPageSizeEnum | null; + 'type'?: HeaderUpdateInputTypeEnum | null; /** - * Indicates whether to include only first page of the tables. + * List of attributes to update */ - 'truncate_table'?: boolean | null; + 'attributes': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8721,7 +8712,7 @@ declare class PdfOptions { }[]; constructor(); } -type PdfOptionsPageSizeEnum = "A4"; +type HeaderUpdateInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -8734,35 +8725,31 @@ type PdfOptionsPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PdfOptionsInput { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; +declare class ImportMetadataTMLAsyncRequest { /** - * Indicates whether to include customized wide logo in the footer if available. + * Details of TML objects. */ - 'include_custom_logo'?: boolean | null; + 'metadata_tmls': Array; /** - * Indicates whether to include a page with all applied filters. + * If selected, creates TML objects with new GUIDs. */ - 'include_filter_page'?: boolean | null; + 'create_new'?: boolean | null; /** - * Indicates whether to include page number in the footer of each page. + * If import is happening from all orgs context. */ - 'include_page_number'?: boolean | null; + 'all_orgs_override'?: boolean | null; /** - * Page orientation of the PDF. + *
Version: 10.5.0.cl or later
Policy to be followed while importing the TML. Valid values are [PARTIAL_OBJECT, PARTIAL, VALIDATE_ONLY, ALL_OR_NONE] */ - 'page_orientation'?: PdfOptionsInputPageOrientationEnum | null; + 'import_policy'?: ImportMetadataTMLAsyncRequestImportPolicyEnum; /** - * Indicates whether to include only the first page of the tables. + *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. */ - 'truncate_table'?: boolean | null; + 'skip_diff_check'?: boolean | null; /** - * Text to include in the footer of each page. + *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. */ - 'page_footer_text'?: string | null; + 'enable_large_metadata_validation'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8778,7 +8765,7 @@ declare class PdfOptionsInput { }[]; constructor(); } -type PdfOptionsInputPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; +type ImportMetadataTMLAsyncRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; /** * ThoughtSpot Public REST API @@ -8791,16 +8778,31 @@ type PdfOptionsInputPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Details of users or groups. -*/ -declare class PermissionInput { - 'principal': PrincipalsInput; +declare class ImportMetadataTMLRequest { /** - * Object share mode. + * Details of TML objects. **Note: importing TML in YAML format, when coming directly from our Playground, is currently requires manual formatting. For more details on the workaround, please click [here](https://developers.thoughtspot.com/docs/known-issues#_version_9_12_0_cl)** */ - 'share_mode': PermissionInputShareModeEnum; + 'metadata_tmls': Array; + /** + * Specifies the import policy for the TML import. + */ + 'import_policy'?: ImportMetadataTMLRequestImportPolicyEnum; + /** + * If selected, creates TML objects with new GUIDs. + */ + 'create_new'?: boolean | null; + /** + * If import is happening from all orgs context. + */ + 'all_orgs_override'?: boolean | null; + /** + *
Version: 10.6.0.cl or later
Boolean Flag to skip TML diff check before processing object TMLs. + */ + 'skip_diff_check'?: boolean | null; + /** + *
Version: 10.5.0.cl or later
Boolean to indicate if the large metadata validation should be enabled. + */ + 'enable_large_metadata_validation'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8816,7 +8818,7 @@ declare class PermissionInput { }[]; constructor(); } -type PermissionInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; +type ImportMetadataTMLRequestImportPolicyEnum = "PARTIAL" | "ALL_OR_NONE" | "VALIDATE_ONLY" | "PARTIAL_OBJECT"; /** * ThoughtSpot Public REST API @@ -8829,8 +8831,64 @@ type PermissionInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PermissionOfMetadataResponse { - 'metadata_permission_details'?: any | null; + +declare class ImportUser { + /** + * Unique ID or name of the user. + */ + 'user_identifier': string; + /** + * Display name of the user. + */ + 'display_name': string; + /** + * Password of the user. + */ + 'password'?: string | null; + /** + * Type of the user account. + */ + 'account_type'?: ImportUserAccountTypeEnum | null; + /** + * Status of the user account. + */ + 'account_status'?: ImportUserAccountStatusEnum | null; + /** + * Email address of the user. + */ + 'email'?: string | null; + /** + * ID or name of the Orgs to which the user belongs. + */ + 'org_identifiers'?: Array | null; + /** + * ID or name of the groups to which the user belongs. + */ + 'group_identifiers'?: Array | null; + /** + * Visibility of the users. The SHARABLE property makes a user visible to other users and group, who can share objects with the user. + */ + 'visibility'?: ImportUserVisibilityEnum | null; + /** + * Notify user when other users or groups share metadata objects + */ + 'notify_on_share'?: boolean | null; + /** + * Show or hide the new user onboarding walkthroughs + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Revisit the new user onboarding walkthroughs + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * Unique ID or name of the default Liveboard assigned to the user. + */ + 'home_liveboard_identifier'?: string | null; + /** + * Metadata objects to add to the user\'s favorites list. + */ + 'favorite_metadata'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8846,6 +8904,9 @@ declare class PermissionOfMetadataResponse { }[]; constructor(); } +type ImportUserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type ImportUserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type ImportUserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -8858,8 +8919,20 @@ declare class PermissionOfMetadataResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PermissionOfPrincipalsResponse { - 'principal_permission_details'?: any | null; + +declare class ImportUserGroupsRequest { + /** + * Details of groups which are to be imported + */ + 'groups'?: Array; + /** + * If set to true, removes groups that are not specified in the API request. + */ + 'delete_unspecified_groups'?: boolean | null; + /** + * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. + */ + 'dry_run'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8887,31 +8960,9 @@ declare class PermissionOfPrincipalsResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PngOptionsInput { - /** - * Indicates whether to include the cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates personalised view of the Liveboard in case of png - */ - 'personalised_view_id'?: string | null; - /** - * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later - */ - 'image_resolution'?: number | null; - /** - * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later - */ - 'image_scale'?: number | null; - /** - * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later - */ - 'include_header'?: boolean | null; +declare class UserGroup { + 'id'?: string | null; + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8939,15 +8990,20 @@ declare class PngOptionsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PrincipalsListItem { + +declare class ImportUserGroupsResponse { /** - * Unique ID or name of the user or group. + * The groups which are added into the system. */ - 'identifier': string; + 'groups_added': Array; /** - * Principal type. Valid values are + * The groups which are deleted from the system. */ - 'type': string; + 'groups_deleted': Array; + /** + * The groups which are updated in the system. + */ + 'groups_updated': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8975,15 +9031,15 @@ declare class PrincipalsListItem { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class PublishMetadataListItem { +declare class ImportUserType { /** - * Unique ID or name of the metadata. + * Unique identifier of the user. */ - 'identifier': string; + 'id'?: string | null; /** - * Type of metadata. Required if identifier is name. + * Name of the user. */ - 'type'?: PublishMetadataListItemTypeEnum | null; + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -8999,7 +9055,6 @@ declare class PublishMetadataListItem { }[]; constructor(); } -type PublishMetadataListItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -9013,19 +9068,23 @@ type PublishMetadataListItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE"; * Do not edit the class manually. */ -declare class PublishMetadataRequest { +declare class ImportUsersRequest { /** - * Metadata objects to be published. + * List of users needs to be imported. */ - 'metadata': Array; + 'users': Array; /** - * Unique ID or name of orgs to which metadata objects should be published. + * The default password to assign to users if they do not have a password assigned in ThoughtSpot. */ - 'org_identifiers': Array; + 'default_password'?: string; /** - * Skip validations of objects to be published. + * If true, the API performs a test operation and returns user IDs whose data will be edited after the import. */ - 'skip_validation'?: boolean | null; + 'dry_run'?: boolean | null; + /** + * If set to true, removes the users that are not specified in the API request. + */ + 'delete_unspecified_users'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9053,10 +9112,39 @@ declare class PublishMetadataRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* NLSRequest object containing user query & instructions. -*/ -declare class QueryGetDecomposedQueryRequestNlsRequest { + +declare class ImportUsersResponse { + 'users_added'?: Array | null; + 'users_updated'?: Array | null; + 'users_deleted'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class InputEurekaNLSRequest { /** * Cluster version like 10.4.0.cl, 10.5.0.cl, so on. */ @@ -9100,33 +9188,12 @@ declare class QueryGetDecomposedQueryRequestNlsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class QueryGetDecomposedQueryRequest { - /** - * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. - */ - 'answerIds'?: Array; - /** - * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. - */ - 'content'?: Array; - /** - * Unique identifier to denote current conversation. - */ - 'conversationId'?: string; - /** - * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. - */ - 'liveboardIds'?: Array; - /** - * Maximum number of decomposed queries that is allowed in the response, default = 5. - */ - 'maxDecomposedQueries'?: number; - 'nlsRequest'?: QueryGetDecomposedQueryRequestNlsRequest; - /** - * List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them. - */ - 'worksheetIds'?: Array; +/** +* Metadata objects. +*/ +declare class JWTMetadataObject { + 'identifier'?: string | null; + 'type'?: JWTMetadataObjectTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9142,6 +9209,7 @@ declare class QueryGetDecomposedQueryRequest { }[]; constructor(); } +type JWTMetadataObjectTypeEnum = "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -9154,19 +9222,22 @@ declare class QueryGetDecomposedQueryRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Recipient configuration which includes email address, ID or name of the users and groups. +* List of runtime parameters need to set during the session. */ -declare class RecipientDetails { +declare class JWTParameter { /** - * Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user. + * Runtime filter parameter type in JWT. */ - 'emails'?: Array | null; + 'runtime_filter'?: any | null; /** - * List of user or groups to subscribe for the scheduled job notifications. + * Runtime sort parameter type in JWT. */ - 'principals'?: Array | null; + 'runtime_sort'?: any | null; + /** + * Runtime param override type in JWT. + */ + 'runtime_param_override'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9196,17 +9267,11 @@ declare class RecipientDetails { */ /** -* Recipients of the scheduled job notification. +* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* */ -declare class RecipientDetailsInput { - /** - * Emails of the recipients. - */ - 'emails'?: Array | null; - /** - * User or groups to be set as recipients of the schedule notifications. - */ - 'principals'?: Array | null; +declare class JWTUserOptions { + 'parameters'?: Array; + 'metadata'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9234,23 +9299,12 @@ declare class RecipientDetailsInput { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RegionalSettingsInput { - /** - * ISO code to be appended with currency values. - */ - 'currency_format'?: RegionalSettingsInputCurrencyFormatEnum | null; - /** - * Indicates the locale to be used for all formattings. - */ - 'user_locale'?: RegionalSettingsInputUserLocaleEnum | null; - /** - * Indicates the locale to be used for number formatting. - */ - 'number_format_locale'?: RegionalSettingsInputNumberFormatLocaleEnum | null; - /** - * Indicates the locale to be used for date formatting. - */ - 'date_format_locale'?: RegionalSettingsInputDateFormatLocaleEnum | null; + +/** +* JWT user options to create a JWT token given the payload. *Deprecated in 9.12.0.cl. Use user_parameters instead.* +*/ +declare class JWTUserOptionsFull { + 'parameters'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9266,10 +9320,6 @@ declare class RegionalSettingsInput { }[]; constructor(); } -type RegionalSettingsInputCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; -type RegionalSettingsInputUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type RegionalSettingsInputNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; -type RegionalSettingsInputDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -9282,33 +9332,43 @@ type RegionalSettingsInputDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | " * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RepoConfigObject { +declare class LiveboardContent { /** - * Remote repository URL configured + * Total available data row count. */ - 'repository_url'?: string | null; + 'available_data_row_count': number; /** - * Username to authenticate connection to the version control system + * Name of the columns. */ - 'username'?: string | null; + 'column_names': Array; /** - * Name of the remote branch where objects from this Thoughtspot instance will be versioned. + * Rows of data set. */ - 'commit_branch_name'?: string | null; + 'data_rows': Array; /** - * Branches that have been pulled in local repository + * The starting record number from where the records should be included. */ - 'branches'?: Array | null; + 'record_offset': number; /** - * Maintain mapping of guid for the deployment to an instance + * The number of records that should be included. */ - 'enable_guid_mapping'?: boolean | null; + 'record_size': number; /** - * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. + * Total returned data row count. */ - 'configuration_branch_name'?: string | null; - 'org'?: Org; + 'returned_data_row_count': number; + /** + * Sampling ratio (0 to 1). If the query was sampled, it is the ratio of keys returned in the data set to the total number of keys expected in the query. If the value is 1.0, this means that the complete result is returned. + */ + 'sampling_ratio': number; + /** + * Unique ID of the visualization. + */ + 'visualization_id'?: string | null; + /** + * Name of the visualization. + */ + 'visualization_name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9336,15 +9396,20 @@ declare class RepoConfigObject { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ResetUserPasswordRequest { + +declare class LiveboardDataResponse { /** - * New password for the user. + * The unique identifier of the object */ - 'new_password': string; + 'metadata_id': string; /** - * GUID or name of the user. + * Name of the metadata object */ - 'user_identifier': string; + 'metadata_name': string; + /** + * Data content of metadata objects + */ + 'contents': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9373,13 +9438,13 @@ declare class ResetUserPasswordRequest { * Do not edit the class manually. */ /** -* The object representation with activation link. +* Options to specify details of Liveboard. */ -declare class ResponseActivationURL { +declare class LiveboardOptions { /** - * Activation link to activate the user. + * Unique ID or name of visualizations. */ - 'activation_link'?: string | null; + 'visualization_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9407,11 +9472,14 @@ declare class ResponseActivationURL { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ResponseCopyObject { +/** +* Options to specify details of Liveboard. +*/ +declare class LiveboardOptionsInput { /** - * The unique identifier of the object. + * Unique ID or name of visualizations. */ - 'metadata_id'?: string | null; + 'visualization_identifiers': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9439,29 +9507,15 @@ declare class ResponseCopyObject { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Custom action details -*/ -declare class ResponseCustomAction { - 'action_details': ActionDetails; - 'default_action_config': DefaultActionConfig; - /** - * Unique Id of the custom action. - */ - 'id': string; - /** - * Metadata objects to assign the the custom action to. - */ - 'metadata_association'?: Array | null; +declare class LogResponse { /** - * Unique name of the custom action. + * Date timestamp of the log entry */ - 'name': string; + 'date': string; /** - * Unique ID or name of the User groups which are associated with the custom action. + * Log data */ - 'user_groups'?: Array | null; + 'log': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9489,19 +9543,23 @@ declare class ResponseCustomAction { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the failed worksheet. -*/ -declare class ResponseFailedEntity { - 'id': string; +declare class LoginRequest { /** - * Name of the worksheet that failed to convert. + * Username of the ThoughtSpot user */ - 'name': string; + 'username'?: string; /** - * Error details related to the failed conversion. + * Password of the user account */ - 'error': string; + 'password'?: string; + /** + * ID of the Org context to log in to. If Org ID is not specified, the user will be logged in to the Org context of their previous login session. + */ + 'org_identifier'?: string; + /** + * A flag to remember the user session. When set to true, a session cookie is created and used in subsequent API requests. + */ + 'remember_me'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9530,16 +9588,21 @@ declare class ResponseFailedEntity { * Do not edit the class manually. */ -/** -* Wrapper for the failed entities, as they are inside a \'data\' field in the response. -*/ -declare class ResponseFailedEntities { - 'data': Array; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; +declare class MetadataAssociationItem { + 'action_config': ActionConfig; + /** + * Unique ID or name of the metadata. + */ + 'identifier': string; + /** + * Type of metadata. 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. + */ + 'type': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; format: string; }>; static getAttributeTypeMap(): { @@ -9562,19 +9625,23 @@ declare class ResponseFailedEntities { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the incomplete worksheet. -*/ -declare class ResponseIncompleteEntity { - 'id': string; +declare class MetadataContext { /** - * Name of the incomplete worksheet. + * List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them. */ - 'name': string; + 'data_source_identifiers'?: Array | null; /** - * Error details related to the incomplete conversion. + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'error': string; + 'answer_identifiers'?: Array | null; + /** + * Unique identifier to denote current conversation. + */ + 'conversation_identifier'?: string | null; + /** + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'liveboard_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9602,12 +9669,9 @@ declare class ResponseIncompleteEntity { * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Wrapper for the incomplete entities, as they are inside a \'data\' field in the response. -*/ -declare class ResponseIncompleteEntities { - 'data': Array; +declare class MetadataInput { + 'identifier'?: string | null; + 'type'?: MetadataInputTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9623,6 +9687,7 @@ declare class ResponseIncompleteEntities { }[]; constructor(); } +type MetadataInputTypeEnum = "LIVEBOARD"; /** * ThoughtSpot Public REST API @@ -9635,31 +9700,27 @@ declare class ResponseIncompleteEntities { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ResponseMessage { - /** - * Unique identifier of the generated response. - */ - 'session_identifier'?: string | null; +declare class MetadataListItemInput { /** - * Generate number of the response. + * Unique ID or name of the metadata. */ - 'generation_number'?: number | null; + 'identifier'?: string | null; /** - * Type of the generated response. + * CustomObjectId of the metadata. */ - 'message_type': ResponseMessageMessageTypeEnum; + 'obj_identifier'?: string | null; /** - * Generated visualization type. + * A pattern to match the case-insensitive name of the metadata object. User % for a wildcard match. */ - 'visualization_type'?: ResponseMessageVisualizationTypeEnum | null; + 'name_pattern'?: string | null; /** - * Tokens for the response. + * Type of metadata. Required if the name of the object is set as identifier. This attribute is optional when the object GUID is specified as identifier. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN for a column of any data object such as table, worksheet or view. 5. CONNECTION for creating or modify data connections. 6. TAG for tag objects. 7. USER for user objects. 8. USER_GROUP for group objects. 9. LOGICAL_RELATIONSHIP for table or worksheet joins. A join combines from one or several data object by using matching values 10. INSIGHT_SPEC for SpotIQ objects */ - 'tokens'?: string | null; + 'type'?: MetadataListItemInputTypeEnum | null; /** - * User friendly tokens for the response. + * List of subtype of metadata. Applies for LOGICAL_TABLE type with the following valid values. 1. ONE_TO_ONE_LOGICAL 2. WORKSHEET 3. PRIVATE_WORKSHEET. 4. USER_DEFINED. 5. AGGR_WORKSHEET. 6. SQL_VIEW Version: 10.11.0.cl or later */ - 'display_tokens'?: string | null; + 'subtypes'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9675,8 +9736,8 @@ declare class ResponseMessage { }[]; constructor(); } -type ResponseMessageMessageTypeEnum = "TSAnswer"; -type ResponseMessageVisualizationTypeEnum = "Chart" | "Table" | "Undefined"; +type MetadataListItemInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; +type MetadataListItemInputSubtypesEnum = "ONE_TO_ONE_LOGICAL" | "WORKSHEET" | "PRIVATE_WORKSHEET" | "USER_DEFINED" | "AGGR_WORKSHEET" | "SQL_VIEW"; /** * ThoughtSpot Public REST API @@ -9689,19 +9750,10 @@ type ResponseMessageVisualizationTypeEnum = "Chart" | "Table" | "Undefined"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the worksheet that failed post-upgrade. -*/ -declare class ResponsePostUpgradeFailedEntity { +declare class MetadataResponse { + 'name'?: string | null; 'id': string; - /** - * Name of the worksheet that failed post-upgrade. - */ - 'name': string; - /** - * Error details related to the post-upgrade failure. - */ - 'error': string; + 'type': MetadataResponseTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9717,6 +9769,7 @@ declare class ResponsePostUpgradeFailedEntity { }[]; constructor(); } +type MetadataResponseTypeEnum = "LIVEBOARD"; /** * ThoughtSpot Public REST API @@ -9729,12 +9782,50 @@ declare class ResponsePostUpgradeFailedEntity { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Wrapper for the post-upgrade failed entities, as they are inside a \'data\' field in the response. +* Metadata Search Response Object. */ -declare class ResponsePostUpgradeFailedEntities { - 'data': Array; +declare class MetadataSearchResponse { + /** + * Unique identifier of the metadata. + */ + 'metadata_id'?: string | null; + /** + * Name of the metadata. + */ + 'metadata_name'?: string | null; + /** + * Type of the metadata. + */ + 'metadata_type': MetadataSearchResponseMetadataTypeEnum; + /** + * Custom identifier of the metadata. (Available from 10.8.0.cl onwards) + */ + 'metadata_obj_id'?: string | null; + /** + * Details of dependent objects of the metadata objects. + */ + 'dependent_objects'?: any | null; + /** + * Details of incomplete information of the metadata objects if any. + */ + 'incomplete_objects'?: Array | null; + /** + * Complete details of the metadata objects. + */ + 'metadata_detail'?: any | null; + /** + * Header information of the metadata objects. + */ + 'metadata_header'?: any | null; + /** + * Visualization header information of the metadata objects. + */ + 'visualization_headers'?: Array | null; + /** + * Stats of the metadata object. Includes views, favorites, last_accessed. + */ + 'stats'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9750,6 +9841,7 @@ declare class ResponsePostUpgradeFailedEntities { }[]; constructor(); } +type MetadataSearchResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP" | "INSIGHT_SPEC"; /** * ThoughtSpot Public REST API @@ -9763,29 +9855,17 @@ declare class ResponsePostUpgradeFailedEntities { * Do not edit the class manually. */ /** -* Schedule run response object +* Sort options. */ -declare class ResponseScheduleRun { - /** - * GUID of the scheduled job. - */ - 'id': string; - /** - * Schedule run start time in milliseconds. - */ - 'start_time_in_millis': number; - /** - * Schedule run end time in milliseconds. - */ - 'end_time_in_millis': number; +declare class MetadataSearchSortOptions { /** - * Status of the schedule run. + * Name of the field to apply the sort on. */ - 'status': string; + 'field_name'?: MetadataSearchSortOptionsFieldNameEnum | null; /** - * Message details related to the schedule run. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'detail'?: string | null; + 'order'?: MetadataSearchSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9801,6 +9881,8 @@ declare class ResponseScheduleRun { }[]; constructor(); } +type MetadataSearchSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; +type MetadataSearchSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -9813,50 +9895,19 @@ declare class ResponseScheduleRun { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ResponseSchedule { - 'author': Author; - /** - * Schedule creation time in milliseconds. - */ - 'creation_time_in_millis': any; - /** - * Description of the job. - */ - 'description'?: string | null; - /** - * Export file format. - */ - 'file_format': string; - 'frequency': Frequency; - /** - * GUID of the scheduled job. - */ - 'id': string; - 'liveboard_options'?: LiveboardOptions; - 'metadata': MetadataResponse; - /** - * Name of the scheduled job. - */ - 'name': string; - 'pdf_options'?: PdfOptions; - 'recipient_details': RecipientDetails; - /** - * Status of the job - */ - 'status'?: string | null; +declare class ModelTableList { /** - * Time zone + * Name of the Model. */ - 'time_zone': string; + 'model_name': string; /** - * Schedule runs history records. + * Model directory path, this is optional param and required if there are duplicate models with the same name. */ - 'history_runs'?: Array | null; + 'model_path'?: string | null; /** - * Personalised view id of the liveboard to be scheduled. + * List of Tables. */ - 'personalised_view_id'?: string | null; + 'tables': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9884,15 +9935,15 @@ declare class ResponseSchedule { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Unique ID of the worksheet. -*/ -declare class ResponseSuccessfulEntity { - 'id': string; +declare class NLInstructionsInfoInput { /** - * Name of the worksheet. + * User instructions for natural language processing. */ - 'name': string; + 'instructions': Array; + /** + * Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. + */ + 'scope': NLInstructionsInfoInputScopeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9908,6 +9959,7 @@ declare class ResponseSuccessfulEntity { }[]; constructor(); } +type NLInstructionsInfoInputScopeEnum = "GLOBAL"; /** * ThoughtSpot Public REST API @@ -9920,12 +9972,18 @@ declare class ResponseSuccessfulEntity { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Wrapper for the successful entities, as they are inside a \'data\' field in the response. +* The object representation with ID and Name. */ -declare class ResponseSuccessfulEntities { - 'data': Array; +declare class ObjectIDAndName { + /** + * The unique identifier of the object. + */ + 'id'?: string | null; + /** + * Name of the object. + */ + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -9953,36 +10011,18 @@ declare class ResponseSuccessfulEntities { * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Name of the conversion process, which involves converting worksheets to models. +* The current Org context of the user. */ -declare class ResponseWorksheetToModelConversion { - 'name': string; - /** - * The number of worksheets successfully converted to models. - */ - 'success_count': number; - /** - * The number of worksheets that failed to convert. - */ - 'failure_count': number; - /** - * The number of worksheets that were incomplete during the conversion process. - */ - 'incomplete_count': number; +declare class Org { /** - * The number of worksheets that failed after an upgrade during the conversion process. + * The ID of the object. */ - 'post_upgrade_failed_count': number; + 'id': number; /** - * The total time taken to complete the conversion process in milliseconds. + * Name of the object. */ - 'total_time_in_millis': number; - 'successful_entities': ResponseSuccessfulEntities; - 'failed_entities': ResponseFailedEntities; - 'incomplete_entities': ResponseIncompleteEntities; - 'post_upgrade_failed_entities': ResponsePostUpgradeFailedEntities; + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10010,20 +10050,15 @@ declare class ResponseWorksheetToModelConversion { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RevertCommitRequest { - /** - * Metadata objects. - */ - 'metadata'?: Array; +declare class OrgPreferenceSearchCriteriaInput { /** - * Name of the branch where the reverted version should be committed Note: If no branch_name is specified, then the commit_branch_name will be considered. + * Unique identifier or name of the org */ - 'branch_name'?: string; + 'org_identifier': string; /** - * Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL] + * Event types to search for. If not provided, all event types for this org are returned. */ - 'revert_policy'?: RevertCommitRequestRevertPolicyEnum; + 'event_types'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10039,7 +10074,7 @@ declare class RevertCommitRequest { }[]; constructor(); } -type RevertCommitRequestRevertPolicyEnum = "ALL_OR_NONE" | "PARTIAL"; +type OrgPreferenceSearchCriteriaInputEventTypesEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -10052,27 +10087,27 @@ type RevertCommitRequestRevertPolicyEnum = "ALL_OR_NONE" | "PARTIAL"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RevertedMetadata { +declare class OrgResponse { /** - * Name of the file deployed + * Unique identifier of the Org. */ - 'file_name': string; + 'id'?: number | null; /** - * Name of the metadata object + * Name of the Org. */ - 'metadata_name': string; + 'name'?: string | null; /** - * Type of the metadata object + * Status of the Org. */ - 'metadata_type': string; + 'status'?: OrgResponseStatusEnum | null; /** - * Indicates the status of deployment for the file + * Description of the Org. */ - 'status_code': string; + 'description'?: string | null; /** - * Any error or warning with the deployment + * Visibility of the Org. */ - 'status_message': string; + 'visibility'?: OrgResponseVisibilityEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10088,6 +10123,8 @@ declare class RevertedMetadata { }[]; constructor(); } +type OrgResponseStatusEnum = "ACTIVE" | "IN_ACTIVE"; +type OrgResponseVisibilityEnum = "SHOW" | "HIDDEN"; /** * ThoughtSpot Public REST API @@ -10100,34 +10137,27 @@ declare class RevertedMetadata { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RevertResponse { - 'committer'?: CommiterType; - 'author'?: AuthorType; - /** - * Comments associated with the commit - */ - 'comment'?: string | null; +declare class ParameterizeMetadataRequest { /** - * Time at which the changes were committed. + * Type of metadata object to parameterize. */ - 'commit_time'?: string | null; + 'metadata_type'?: ParameterizeMetadataRequestMetadataTypeEnum; /** - * SHA id associated with the commit + * Unique ID or name of the metadata object to parameterize. */ - 'commit_id'?: string | null; + 'metadata_identifier': string; /** - * Branch where changes were committed + * Type of field in the metadata to parameterize. */ - 'branch'?: string | null; + 'field_type': ParameterizeMetadataRequestFieldTypeEnum; /** - * Files that were pushed as part of this commit + * Name of the field which needs to be parameterized. */ - 'committed_files'?: Array | null; + 'field_name': string; /** - * Metadata of reverted file of this commit + * Unique ID or name of the variable to use for parameterization */ - 'reverted_metadata'?: Array | null; + 'variable_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10143,6 +10173,8 @@ declare class RevertResponse { }[]; constructor(); } +type ParameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; +type ParameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; /** * ThoughtSpot Public REST API @@ -10155,9 +10187,46 @@ declare class RevertResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RevokeTokenRequest { - 'user_identifier'?: string; - 'token'?: string; +/** +* Options for PDF export. +*/ +declare class PdfOptions { + /** + * Indicates whether to include complete Liveboard. + */ + 'complete_liveboard'?: boolean | null; + /** + * Indicates whether to include cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page + */ + 'include_page_number'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: PdfOptionsPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10173,6 +10242,7 @@ declare class RevokeTokenRequest { }[]; constructor(); } +type PdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -10185,9 +10255,35 @@ declare class RevokeTokenRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RiseGQLArgWrapper { - 'name': string; - 'type': string; +declare class PdfOptionsInput { + /** + * Indicates whether to include the cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page. + */ + 'include_page_number'?: boolean | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: PdfOptionsInputPageOrientationEnum | null; + /** + * Indicates whether to include only the first page of the tables. + */ + 'truncate_table'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10203,6 +10299,7 @@ declare class RiseGQLArgWrapper { }[]; constructor(); } +type PdfOptionsInputPageOrientationEnum = "PORTRAIT" | "LANDSCAPE"; /** * ThoughtSpot Public REST API @@ -10215,9 +10312,16 @@ declare class RiseGQLArgWrapper { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class RiseSetter { - 'field': string; - 'path': string; + +/** +* Details of users or groups. +*/ +declare class PermissionInput { + 'principal': PrincipalsInput; + /** + * Object share mode. + */ + 'share_mode': PermissionInputShareModeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10233,6 +10337,7 @@ declare class RiseSetter { }[]; constructor(); } +type PermissionInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -10245,15 +10350,8 @@ declare class RiseSetter { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Role { - /** - * id of the role - */ - 'id'?: string | null; - /** - * name of the role - */ - 'name'?: string | null; +declare class PermissionOfMetadataResponse { + 'metadata_permission_details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10281,76 +10379,8 @@ declare class Role { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class RoleResponse { - /** - * Unique Id of the role. - */ - 'id': string; - /** - * Name of the role - */ - 'name': string; - /** - * Description of the role - */ - 'description': string; - /** - * number of groups assigned with this role - */ - 'groups_assigned_count'?: number | null; - /** - * Orgs in which role exists. - */ - 'orgs'?: Array | null; - /** - * Details of groups assigned with this role - */ - 'groups'?: Array | null; - /** - * Privileges granted to the role. - */ - 'privileges': Array; - /** - * Permission details of the Role - */ - 'permission'?: RoleResponsePermissionEnum | null; - /** - * Unique identifier of author of the role. - */ - 'author_id'?: string | null; - /** - * Unique identifier of modifier of the role. - */ - 'modifier_id'?: string | null; - /** - * Creation time of the role in milliseconds. - */ - 'creation_time_in_millis'?: any | null; - /** - * Last modified time of the role in milliseconds. - */ - 'modification_time_in_millis'?: any | null; - /** - * Indicates whether the role is deleted. - */ - 'deleted'?: boolean | null; - /** - * Indicates whether the role is deprecated. - */ - 'deprecated'?: boolean | null; - /** - * Indicates whether the role is external. - */ - 'external'?: boolean | null; - /** - * Indicates whether the role is hidden. - */ - 'hidden'?: boolean | null; - /** - * Indicates whether the role is shared via connection - */ - 'shared_via_connection'?: boolean | null; +declare class PermissionOfPrincipalsResponse { + 'principal_permission_details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10366,8 +10396,6 @@ declare class RoleResponse { }[]; constructor(); } -type RoleResponsePrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE"; -type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -10380,18 +10408,35 @@ type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* List of runtime parameters need to set during the session. -*/ -declare class RuntimeFilter { +declare class PngOptionsInput { /** - * Runtime filter parameter type in JWT. + * Indicates whether to include the cover page with the Liveboard title. */ - 'runtime_filter'?: any; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates personalised view of the Liveboard in case of png + */ + 'personalised_view_id'?: string | null; + /** + * Desired width of the Liveboard image in pixels. Ex. 1920 for Full HD image Version: 10.9.0.cl or later + */ + 'image_resolution'?: number | null; + /** + * The scale of the image in percentage. Ex. 100 for 100% scale. Version: 10.9.0.cl or later + */ + 'image_scale'?: number | null; + /** + * Indicates whether to include the header of the liveboard. Version: 10.9.0.cl or later + */ + 'include_header'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; type: string; format: string; }>; @@ -10415,14 +10460,15 @@ declare class RuntimeFilter { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* List of runtime parameters need to set during the session. -*/ -declare class RuntimeParamOverride { +declare class PrincipalsListItem { /** - * Runtime param override type in JWT. + * Unique ID or name of the user or group. */ - 'runtime_param_override'?: any; + 'identifier': string; + /** + * Principal type. Valid values are + */ + 'type': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10450,14 +10496,15 @@ declare class RuntimeParamOverride { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* List of runtime parameters need to set during the session. -*/ -declare class RuntimeSort { +declare class PublishMetadataListItem { /** - * Runtime sort parameter type in JWT. + * Unique ID or name of the metadata. */ - 'runtime_sort'?: any; + 'identifier': string; + /** + * Type of metadata. Required if identifier is name. + */ + 'type'?: PublishMetadataListItemTypeEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10473,6 +10520,7 @@ declare class RuntimeSort { }[]; constructor(); } +type PublishMetadataListItemTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE"; /** * ThoughtSpot Public REST API @@ -10485,19 +10533,20 @@ declare class RuntimeSort { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ScheduleHistoryRunsOptionsInput { + +declare class PublishMetadataRequest { /** - * Indicates whether to fetch history runs for the scheduled notification. + * Metadata objects to be published. */ - 'include_history_runs'?: boolean | null; + 'metadata': Array; /** - * Indicates the max number of records that can be fetched as past runs of any scheduled job. + * Unique ID or name of orgs to which metadata objects should be published. */ - 'record_size'?: number | null; + 'org_identifiers': Array; /** - * Indicates the starting record number from where history runs records should be fetched. + * Skip validations of objects to be published. */ - 'record_offset'?: number | null; + 'skip_validation'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10526,45 +10575,79 @@ declare class ScheduleHistoryRunsOptionsInput { * Do not edit the class manually. */ /** -* Options for PDF export. +* NLSRequest object containing user query & instructions. */ -declare class SchedulesPdfOptionsInput { +declare class QueryGetDecomposedQueryRequestNlsRequest { /** - * Indicates whether to include complete Liveboard. + * Cluster version like 10.4.0.cl, 10.5.0.cl, so on. */ - 'complete_liveboard'?: boolean | null; + 'agentVersion'?: number | null; /** - * Indicates whether to include cover page with the Liveboard title. + * If true, results are not returned from cache & calculated every time. Can incur high costs & latency. */ - 'include_cover_page'?: boolean | null; + 'bypassCache'?: boolean | null; /** - * Indicates whether to include customized wide logo in the footer if available. + * User specific instructions for processing the @query. */ - 'include_custom_logo'?: boolean | null; + 'instructions'?: Array | null; /** - * Indicates whether to include a page with all applied filters. + * User query which is a topical/goal oriented question that needs to be broken down into smaller simple analytical questions. */ - 'include_filter_page'?: boolean | null; + 'query'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class QueryGetDecomposedQueryRequest { /** - * Indicates whether to include page number in the footer of each page + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'include_page_number'?: boolean | null; + 'answerIds'?: Array; /** - * Text to include in the footer of each page. + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. */ - 'page_footer_text'?: string | null; + 'content'?: Array; /** - * Page orientation of the PDF. + * Unique identifier to denote current conversation. */ - 'page_orientation'?: string | null; + 'conversationId'?: string; /** - * Page size. + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. */ - 'page_size'?: SchedulesPdfOptionsInputPageSizeEnum | null; + 'liveboardIds'?: Array; /** - * Indicates whether to include only first page of the tables. + * Maximum number of decomposed queries that is allowed in the response, default = 5. */ - 'truncate_table'?: boolean | null; + 'maxDecomposedQueries'?: number; + 'nlsRequest'?: QueryGetDecomposedQueryRequestNlsRequest; + /** + * List of worksheetIds to provide context for decomposing user query into analytical queries that can be run on them. + */ + 'worksheetIds'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10580,7 +10663,6 @@ declare class SchedulesPdfOptionsInput { }[]; constructor(); } -type SchedulesPdfOptionsInputPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -10593,19 +10675,19 @@ type SchedulesPdfOptionsInputPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Scope { - /** - * Object access scope type. - */ - 'access_type': string; + +/** +* Recipient configuration which includes email address, ID or name of the users and groups. +*/ +declare class RecipientDetails { /** - * Unique identifier of the metadata. + * Emails of the recipients. Specify email address if the recipient is not a ThoughtSpot user. */ - 'org_id'?: number | null; + 'emails'?: Array | null; /** - * Unique identifier of the Org. + * List of user or groups to subscribe for the scheduled job notifications. */ - 'metadata_id'?: string | null; + 'principals'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10633,18 +10715,19 @@ declare class Scope { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Sort options. +* Recipients of the scheduled job notification. */ -declare class SearchCalendarsRequestSortOptions { +declare class RecipientDetailsInput { /** - * Name of the field to apply the sort on. + * Emails of the recipients. */ - 'field_name'?: SearchCalendarsRequestSortOptionsFieldNameEnum | null; + 'emails'?: Array | null; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * User or groups to be set as recipients of the schedule notifications. */ - 'order'?: SearchCalendarsRequestSortOptionsOrderEnum | null; + 'principals'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10660,8 +10743,6 @@ declare class SearchCalendarsRequestSortOptions { }[]; constructor(); } -type SearchCalendarsRequestSortOptionsFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SearchCalendarsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -10674,25 +10755,23 @@ type SearchCalendarsRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchCalendarsRequest { +declare class RegionalSettingsInput { /** - * Unique ID or name of the connection. + * ISO code to be appended with currency values. */ - 'connection_identifier'?: string; + 'currency_format'?: RegionalSettingsInputCurrencyFormatEnum | null; /** - * Pattern to match for calendar names (use \'%\' for wildcard match). + * Indicates the locale to be used for all formattings. */ - 'name_pattern'?: string; + 'user_locale'?: RegionalSettingsInputUserLocaleEnum | null; /** - * The starting record number from where the records should be included. + * Indicates the locale to be used for number formatting. */ - 'record_offset'?: number; + 'number_format_locale'?: RegionalSettingsInputNumberFormatLocaleEnum | null; /** - * The number of records that should be included. + * Indicates the locale to be used for date formatting. */ - 'record_size'?: number; - 'sort_options'?: SearchCalendarsRequestSortOptions; + 'date_format_locale'?: RegionalSettingsInputDateFormatLocaleEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10708,6 +10787,10 @@ declare class SearchCalendarsRequest { }[]; constructor(); } +type RegionalSettingsInputCurrencyFormatEnum = "ADP" | "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARA" | "ARS" | "ATS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BEF" | "BGL" | "BGM" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOP" | "BOV" | "BRL" | "BSD" | "BTN" | "BUK" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLE" | "CLP" | "CNX" | "CNY" | "COP" | "COU" | "CRC" | "CSK" | "CUC" | "CUP" | "CVE" | "CYP" | "CZK" | "DDM" | "DEM" | "DJF" | "DKK" | "DOP" | "DZD" | "ECS" | "ECV" | "EEK" | "EGP" | "ERN" | "ESP" | "ETB" | "EUR" | "FIM" | "FJD" | "FKP" | "FRF" | "GBP" | "GEK" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GNS" | "GQE" | "GRD" | "GTQ" | "GWE" | "GWP" | "GYD" | "HKD" | "HNL" | "HRD" | "HRK" | "HTG" | "HUF" | "IDR" | "IEP" | "ILP" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "ITL" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LTL" | "LTT" | "LUC" | "LUF" | "LUL" | "LVL" | "LVR" | "LYD" | "MAD" | "MAF" | "MCF" | "MDC" | "MDL" | "MGA" | "MGF" | "MKD" | "MLF" | "MMK" | "MNT" | "MOP" | "MRU" | "MTL" | "MTP" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZE" | "MZN" | "NAD" | "NGN" | "NIO" | "NLG" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEI" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PTE" | "PYG" | "QAR" | "RHD" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SIT" | "SKK" | "SLL" | "SOS" | "SRD" | "SRG" | "SSP" | "STN" | "SUR" | "SVC" | "SYP" | "SZL" | "THB" | "TJR" | "TJS" | "TMT" | "TND" | "TOP" | "TPE" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UAK" | "UGX" | "USD" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XCD" | "XDR" | "XEU" | "XFO" | "XFU" | "XOF" | "XPD" | "XPF" | "XPT" | "XRE" | "XSU" | "XTS" | "XUA" | "XXX" | "YDD" | "YER" | "ZAR" | "ZMW"; +type RegionalSettingsInputUserLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type RegionalSettingsInputNumberFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; +type RegionalSettingsInputDateFormatLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -10720,27 +10803,33 @@ declare class SearchCalendarsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchCommitsRequest { + +declare class RepoConfigObject { /** - * Unique ID or name of the metadata. + * Remote repository URL configured */ - 'metadata_identifier': string; + 'repository_url'?: string | null; /** - * Type of metadata. + * Username to authenticate connection to the version control system */ - 'metadata_type'?: SearchCommitsRequestMetadataTypeEnum; + 'username'?: string | null; /** - * Name of the branch from which commit history needs to be displayed. Note: If no branch_name is specified, then commits will be returned for the default branch for this configuration. + * Name of the remote branch where objects from this Thoughtspot instance will be versioned. */ - 'branch_name'?: string; + 'commit_branch_name'?: string | null; /** - * Record offset point in the commit history to display the response. Note: If no record offset is specified, the beginning of the record will be considered. + * Branches that have been pulled in local repository */ - 'record_offset'?: number; + 'branches'?: Array | null; /** - * Number of history records from record offset point to be displayed in the response. Note: If no record size is specified, then all the records will be considered. + * Maintain mapping of guid for the deployment to an instance */ - 'record_size'?: number; + 'enable_guid_mapping'?: boolean | null; + /** + * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. + */ + 'configuration_branch_name'?: string | null; + 'org'?: Org; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10756,7 +10845,6 @@ declare class SearchCommitsRequest { }[]; constructor(); } -type SearchCommitsRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CUSTOM_ACTION"; /** * ThoughtSpot Public REST API @@ -10769,11 +10857,15 @@ type SearchCommitsRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchConfigRequest { +declare class ResetUserPasswordRequest { /** - * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later + * New password for the user. */ - 'org_identifiers'?: Array; + 'new_password': string; + /** + * GUID or name of the user. + */ + 'user_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10802,17 +10894,13 @@ declare class SearchConfigRequest { * Do not edit the class manually. */ /** -* Sort options. +* The object representation with activation link. */ -declare class SearchConnectionRequestSortOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: SearchConnectionRequestSortOptionsFieldNameEnum | null; +declare class ResponseActivationURL { /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Activation link to activate the user. */ - 'order'?: SearchConnectionRequestSortOptionsOrderEnum | null; + 'activation_link'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10828,8 +10916,6 @@ declare class SearchConnectionRequestSortOptions { }[]; constructor(); } -type SearchConnectionRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; -type SearchConnectionRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -10842,49 +10928,11 @@ type SearchConnectionRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchConnectionRequest { +declare class ResponseCopyObject { /** - * List of connections and name pattern - */ - 'connections'?: Array; - /** - * Array of types of data warehouse defined for the connection. - */ - 'data_warehouse_types'?: Array; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records that should be included. - */ - 'record_size'?: number; - /** - * Unique ID or name of tags. - */ - 'tag_identifiers'?: Array; - /** - * Data warehouse object type. - */ - 'data_warehouse_object_type'?: SearchConnectionRequestDataWarehouseObjectTypeEnum; - 'sort_options'?: SearchConnectionRequestSortOptions; - /** - * Indicates whether to include complete details of the connection objects. - */ - 'include_details'?: boolean | null; - /** - * Configuration values. If empty we are fetching configuration from datasource based on given connection id. If required you can provide config details to fetch specific details. Example input: {}, {\"warehouse\":\"SMALL_WH\",\"database\":\"DEVELOPMENT\"}. This is only applicable when data_warehouse_object_type is selected. - */ - 'configuration'?: any; - /** - * List of authentication types to fetch data_ware_house_objects from external Data warehouse. This is only applicable when data_warehouse_object_type is selected. - */ - 'authentication_type'?: SearchConnectionRequestAuthenticationTypeEnum; - /** - *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. + * The unique identifier of the object. */ - 'show_resolved_parameters'?: boolean | null; + 'metadata_id'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10900,9 +10948,6 @@ declare class SearchConnectionRequest { }[]; constructor(); } -type SearchConnectionRequestDataWarehouseTypesEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; -type SearchConnectionRequestDataWarehouseObjectTypeEnum = "DATABASE" | "SCHEMA" | "TABLE" | "COLUMN"; -type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "IAM" | "EXTOAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "PERSONAL_ACCESS_TOKEN" | "KEY_PAIR" | "OAUTH_WITH_PKCE" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PEZ"; /** * ThoughtSpot Public REST API @@ -10916,28 +10961,28 @@ type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" * Do not edit the class manually. */ -declare class SearchConnectionResponse { +/** +* Custom action details +*/ +declare class ResponseCustomAction { + 'action_details': ActionDetails; + 'default_action_config': DefaultActionConfig; /** - * Unique ID of the connection. + * Unique Id of the custom action. */ 'id': string; /** - * Name of the connection. - */ - 'name': string; - /** - * Description of the connection. + * Metadata objects to assign the the custom action to. */ - 'description'?: string | null; + 'metadata_association'?: Array | null; /** - * Type of data warehouse. + * Unique name of the custom action. */ - 'data_warehouse_type': SearchConnectionResponseDataWarehouseTypeEnum; - 'data_warehouse_objects'?: DataWarehouseObjects; + 'name': string; /** - * Details of the connection. + * Unique ID or name of the User groups which are associated with the custom action. */ - 'details'?: any | null; + 'user_groups'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -10953,7 +10998,6 @@ declare class SearchConnectionResponse { }[]; constructor(); } -type SearchConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -10967,13 +11011,18 @@ type SearchConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSH * Do not edit the class manually. */ /** -* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. +* Unique ID of the failed worksheet. */ -declare class SearchCustomActionsRequestDefaultActionConfig { +declare class ResponseFailedEntity { + 'id': string; /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Name of the worksheet that failed to convert. */ - 'visibility'?: boolean | null; + 'name': string; + /** + * Error details related to the failed conversion. + */ + 'error': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11002,32 +11051,11 @@ declare class SearchCustomActionsRequestDefaultActionConfig { * Do not edit the class manually. */ -declare class SearchCustomActionsRequest { - /** - * Name or ID of the custom action. - */ - 'custom_action_identifier'?: string; - /** - * A pattern to match case-insensitive name of the custom-action object. - */ - 'name_pattern'?: string; - 'default_action_config'?: SearchCustomActionsRequestDefaultActionConfig; - /** - * When set to true, returns the associated groups for a custom action. - */ - 'include_group_associations'?: boolean | null; - /** - * When set to true, returns the associated metadata for a custom action. - */ - 'include_metadata_associations'?: boolean | null; - /** - * Search with a given metadata identifier. - */ - 'metadata'?: Array; - /** - * Filter the action objects based on type - */ - 'type'?: SearchCustomActionsRequestTypeEnum; +/** +* Wrapper for the failed entities, as they are inside a \'data\' field in the response. +*/ +declare class ResponseFailedEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11043,7 +11071,6 @@ declare class SearchCustomActionsRequest { }[]; constructor(); } -type SearchCustomActionsRequestTypeEnum = "CALLBACK" | "URL"; /** * ThoughtSpot Public REST API @@ -11056,39 +11083,19 @@ type SearchCustomActionsRequestTypeEnum = "CALLBACK" | "URL"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchDataRequest { - /** - * Query string with search tokens. For example, [Sales][Region]. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api) - */ - 'query_string': string; - /** - * GUID of the data source object, such as a Worksheet, View, or Table. You can find the GUID of a data object from the UI or via API. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_query) for more details. - */ - 'logical_table_identifier': string; - /** - * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. - */ - 'data_format'?: SearchDataRequestDataFormatEnum; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records to include in a batch. - */ - 'record_size'?: number; - /** - * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). - */ - 'runtime_filter'?: any; +/** +* Unique ID of the incomplete worksheet. +*/ +declare class ResponseIncompleteEntity { + 'id': string; /** - * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). + * Name of the incomplete worksheet. */ - 'runtime_sort'?: any; + 'name': string; /** - * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). + * Error details related to the incomplete conversion. */ - 'runtime_param_override'?: any; + 'error': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11104,7 +11111,6 @@ declare class SearchDataRequest { }[]; constructor(); } -type SearchDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -11119,13 +11125,10 @@ type SearchDataRequestDataFormatEnum = "FULL" | "COMPACT"; */ /** -* Response format associated with the search data API. +* Wrapper for the incomplete entities, as they are inside a \'data\' field in the response. */ -declare class SearchDataResponse { - /** - * Data content of metadata objects - */ - 'contents': Array; +declare class ResponseIncompleteEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11153,11 +11156,31 @@ declare class SearchDataResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchEmailCustomizationRequest { +declare class ResponseMessage { /** - * Unique ID or name of org Version: 10.12.0.cl or later + * Unique identifier of the generated response. */ - 'org_identifiers'?: Array; + 'session_identifier'?: string | null; + /** + * Generate number of the response. + */ + 'generation_number'?: number | null; + /** + * Type of the generated response. + */ + 'message_type': ResponseMessageMessageTypeEnum; + /** + * Generated visualization type. + */ + 'visualization_type'?: ResponseMessageVisualizationTypeEnum | null; + /** + * Tokens for the response. + */ + 'tokens'?: string | null; + /** + * User friendly tokens for the response. + */ + 'display_tokens'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11173,6 +11196,8 @@ declare class SearchEmailCustomizationRequest { }[]; constructor(); } +type ResponseMessageMessageTypeEnum = "TSAnswer"; +type ResponseMessageVisualizationTypeEnum = "Chart" | "Table" | "Undefined"; /** * ThoughtSpot Public REST API @@ -11186,17 +11211,18 @@ declare class SearchEmailCustomizationRequest { * Do not edit the class manually. */ /** -* Options to sort the API response by objects set as favorites for the logged-in user or the users specified in the API request. +* Unique ID of the worksheet that failed post-upgrade. */ -declare class SearchMetadataRequestFavoriteObjectOptions { +declare class ResponsePostUpgradeFailedEntity { + 'id': string; /** - * Includes objects marked as favorite for the specified users. + * Name of the worksheet that failed post-upgrade. */ - 'include'?: boolean | null; + 'name': string; /** - * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. + * Error details related to the post-upgrade failure. */ - 'user_identifiers'?: Array | null; + 'error': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11224,18 +11250,12 @@ declare class SearchMetadataRequestFavoriteObjectOptions { * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Sort options to filter metadata details. +* Wrapper for the post-upgrade failed entities, as they are inside a \'data\' field in the response. */ -declare class SearchMetadataRequestSortOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: SearchMetadataRequestSortOptionsFieldNameEnum | null; - /** - * Sort order : ASC(Ascending) or DESC(Descending). - */ - 'order'?: SearchMetadataRequestSortOptionsOrderEnum | null; +declare class ResponsePostUpgradeFailedEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11251,8 +11271,6 @@ declare class SearchMetadataRequestSortOptions { }[]; constructor(); } -type SearchMetadataRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; -type SearchMetadataRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -11265,102 +11283,30 @@ type SearchMetadataRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchMetadataRequest { - /** - * Metadata objects such as Liveboards, Answers, and Worksheets. - */ - 'metadata'?: Array; - /** - * Object permission details to search by. - */ - 'permissions'?: Array; - /** - * GUID or name of user who created the metadata object. - */ - 'created_by_user_identifiers'?: Array; +/** +* Schedule run response object +*/ +declare class ResponseScheduleRun { /** - * Version of the dependent table of the metadata objects like Worksheets. + * GUID of the scheduled job. */ - 'dependent_object_version'?: SearchMetadataRequestDependentObjectVersionEnum; + 'id': string; /** - * List of metadata objects to exclude from search. + * Schedule run start time in milliseconds. */ - 'exclude_objects'?: Array; - 'favorite_object_options'?: SearchMetadataRequestFavoriteObjectOptions; + 'start_time_in_millis': number; /** - * Includes system-generated metadata objects. + * Schedule run end time in milliseconds. */ - 'include_auto_created_objects'?: boolean | null; + 'end_time_in_millis': number; /** - * Includes dependents of the metadata object specified in the API request. For example, a worksheet can consist of dependent objects such as Liveboards or Answers. + * Status of the schedule run. */ - 'include_dependent_objects'?: boolean | null; + 'status': string; /** - * The maximum number of dependents to include per metadata object. + * Message details related to the schedule run. */ - 'dependent_objects_record_size'?: number; - /** - * Includes complete details of the metadata objects. - */ - 'include_details'?: boolean | null; - /** - * Includes headers of the metadata objects. - */ - 'include_headers'?: boolean | null; - /** - * Includes details of the hidden objects, such as a column in a worksheet or a table. - */ - 'include_hidden_objects'?: boolean | null; - /** - * Includes objects with incomplete metadata. - */ - 'include_incomplete_objects'?: boolean | null; - /** - * Includes visualization headers of the specified Liveboard object. - */ - 'include_visualization_headers'?: boolean | null; - /** - * If search assistance lessons are configured on a worksheet, the API returns the search assist data for Worksheet objects. - */ - 'include_worksheet_search_assist_data'?: boolean | null; - /** - * Includes ID or names of the users who modified the metadata object. - */ - 'modified_by_user_identifiers'?: Array; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records that should be included. It is recommended to use a smaller `record_size` when fetching dependent objects or any of the additional metadata detail options. - */ - 'record_size'?: number; - 'sort_options'?: SearchMetadataRequestSortOptions; - /** - * Tags to filter metadata objects by - */ - 'tag_identifiers'?: Array; - /** - * Indicates whether to include stats of the metadata objects. - */ - 'include_stats'?: boolean | null; - /** - *
Version: 10.7.0.cl or later
Boolean to indicate whether to include discoverable metadata objects. - */ - 'include_discoverable_objects'?: boolean | null; - /** - *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. - */ - 'show_resolved_parameters'?: boolean | null; - /** - * Indicates the model version of Liveboard to be attached in metadata detail. - */ - 'liveboard_response_version'?: SearchMetadataRequestLiveboardResponseVersionEnum; - /** - *
Version: 10.11.0.cl or later
If only published objects should be returned - */ - 'include_only_published_objects'?: boolean | null; + 'detail'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11376,8 +11322,6 @@ declare class SearchMetadataRequest { }[]; constructor(); } -type SearchMetadataRequestDependentObjectVersionEnum = "V1" | "V2"; -type SearchMetadataRequestLiveboardResponseVersionEnum = "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -11390,27 +11334,50 @@ type SearchMetadataRequestLiveboardResponseVersionEnum = "V1" | "V2"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchOrgsRequest { + +declare class ResponseSchedule { + 'author': Author; /** - * ID or name of the Org + * Schedule creation time in milliseconds. */ - 'org_identifier'?: string; + 'creation_time_in_millis': any; /** - * Description of the Org + * Description of the job. */ - 'description'?: string; + 'description'?: string | null; /** - * Visibility of the Org + * Export file format. */ - 'visibility'?: SearchOrgsRequestVisibilityEnum; + 'file_format': string; + 'frequency': Frequency; /** - * Status of the Org + * GUID of the scheduled job. */ - 'status'?: SearchOrgsRequestStatusEnum; + 'id': string; + 'liveboard_options'?: LiveboardOptions; + 'metadata': MetadataResponse; /** - * GUIDs or names of the users for which you want to retrieve the Orgs data + * Name of the scheduled job. */ - 'user_identifiers'?: Array; + 'name': string; + 'pdf_options'?: PdfOptions; + 'recipient_details': RecipientDetails; + /** + * Status of the job + */ + 'status'?: string | null; + /** + * Time zone + */ + 'time_zone': string; + /** + * Schedule runs history records. + */ + 'history_runs'?: Array | null; + /** + * Personalised view id of the liveboard to be scheduled. + */ + 'personalised_view_id'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11426,8 +11393,6 @@ declare class SearchOrgsRequest { }[]; constructor(); } -type SearchOrgsRequestVisibilityEnum = "SHOW" | "HIDDEN"; -type SearchOrgsRequestStatusEnum = "ACTIVE" | "IN_ACTIVE"; /** * ThoughtSpot Public REST API @@ -11440,79 +11405,15 @@ type SearchOrgsRequestStatusEnum = "ACTIVE" | "IN_ACTIVE"; * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Response for search role api should handle hidden privileges as well. +* Unique ID of the worksheet. */ -declare class SearchRoleResponse { - /** - * Unique Id of the role. - */ +declare class ResponseSuccessfulEntity { 'id': string; /** - * Name of the role + * Name of the worksheet. */ 'name': string; - /** - * Description of the role - */ - 'description': string; - /** - * number of groups assigned with this role - */ - 'groups_assigned_count'?: number | null; - /** - * Orgs in which role exists. - */ - 'orgs'?: Array | null; - /** - * Details of groups assigned with this role - */ - 'groups'?: Array | null; - /** - * Privileges granted to the role. - */ - 'privileges': Array; - /** - * Permission details of the Role - */ - 'permission'?: SearchRoleResponsePermissionEnum | null; - /** - * Unique identifier of author of the role. - */ - 'author_id'?: string | null; - /** - * Unique identifier of modifier of the role. - */ - 'modifier_id'?: string | null; - /** - * Creation time of the role in milliseconds. - */ - 'creation_time_in_millis'?: any | null; - /** - * Last modified time of the role in milliseconds. - */ - 'modification_time_in_millis'?: any | null; - /** - * Indicates whether the role is deleted. - */ - 'deleted'?: boolean | null; - /** - * Indicates whether the role is deprecated. - */ - 'deprecated'?: boolean | null; - /** - * Indicates whether the role is external. - */ - 'external'?: boolean | null; - /** - * Indicates whether the role is hidden. - */ - 'hidden'?: boolean | null; - /** - * Indicates whether the role is shared via connection - */ - 'shared_via_connection'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11528,8 +11429,6 @@ declare class SearchRoleResponse { }[]; constructor(); } -type SearchRoleResponsePrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -11542,39 +11441,12 @@ type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchRolesRequest { - /** - * unique ID or name of the Roles - */ - 'role_identifiers'?: Array; - /** - * Unique Id or name of the Organisation - */ - 'org_identifiers'?: Array; - /** - * Unique Id or name of the User Group - */ - 'group_identifiers'?: Array; - /** - * Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. - */ - 'privileges'?: Array; - /** - * Indicates whether the Role is deprecated. - */ - 'deprecated'?: boolean | null; - /** - * Indicates whether the Role is external - */ - 'external'?: boolean | null; - /** - * Indicates whether the Role is shared via connection - */ - 'shared_via_connection'?: boolean | null; - /** - * Permission details of the Role - */ - 'permissions'?: Array; + +/** +* Wrapper for the successful entities, as they are inside a \'data\' field in the response. +*/ +declare class ResponseSuccessfulEntities { + 'data': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11590,8 +11462,6 @@ declare class SearchRolesRequest { }[]; constructor(); } -type SearchRolesRequestPrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -11604,22 +11474,36 @@ type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ + /** -* Options while fetching history runs for the schedule. +* Name of the conversion process, which involves converting worksheets to models. */ -declare class SearchSchedulesRequestHistoryRunsOptions { +declare class ResponseWorksheetToModelConversion { + 'name': string; /** - * Indicates whether to fetch history runs for the scheduled notification. + * The number of worksheets successfully converted to models. */ - 'include_history_runs'?: boolean | null; + 'success_count': number; /** - * Indicates the max number of records that can be fetched as past runs of any scheduled job. + * The number of worksheets that failed to convert. */ - 'record_size'?: number | null; + 'failure_count': number; /** - * Indicates the starting record number from where history runs records should be fetched. + * The number of worksheets that were incomplete during the conversion process. */ - 'record_offset'?: number | null; + 'incomplete_count': number; + /** + * The number of worksheets that failed after an upgrade during the conversion process. + */ + 'post_upgrade_failed_count': number; + /** + * The total time taken to complete the conversion process in milliseconds. + */ + 'total_time_in_millis': number; + 'successful_entities': ResponseSuccessfulEntities; + 'failed_entities': ResponseFailedEntities; + 'incomplete_entities': ResponseIncompleteEntities; + 'post_upgrade_failed_entities': ResponsePostUpgradeFailedEntities; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11647,18 +11531,20 @@ declare class SearchSchedulesRequestHistoryRunsOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options. -*/ -declare class SearchSchedulesRequestSortOptions { + +declare class RevertCommitRequest { /** - * Name of the field to apply the sort on. + * Metadata objects. */ - 'field_name'?: string | null; + 'metadata'?: Array; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Name of the branch where the reverted version should be committed Note: If no branch_name is specified, then the commit_branch_name will be considered. */ - 'order'?: string | null; + 'branch_name'?: string; + /** + * Policy to apply when reverting a commit. Valid values: [ALL_OR_NONE, PARTIAL] + */ + 'revert_policy'?: RevertCommitRequestRevertPolicyEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11674,6 +11560,7 @@ declare class SearchSchedulesRequestSortOptions { }[]; constructor(); } +type RevertCommitRequestRevertPolicyEnum = "ALL_OR_NONE" | "PARTIAL"; /** * ThoughtSpot Public REST API @@ -11686,26 +11573,27 @@ declare class SearchSchedulesRequestSortOptions { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchSchedulesRequest { +declare class RevertedMetadata { /** - * Metadata objects associated with the scheduled jobs. + * Name of the file deployed */ - 'metadata'?: Array; + 'file_name': string; /** - * The starting record number from where the records should be included. + * Name of the metadata object */ - 'record_offset'?: number; + 'metadata_name': string; /** - * The number of records that should be included. + * Type of the metadata object */ - 'record_size'?: number; - 'sort_options'?: SearchSchedulesRequestSortOptions; - 'history_runs_options'?: SearchSchedulesRequestHistoryRunsOptions; + 'metadata_type': string; /** - * unique ID or name of the Schedule + * Indicates the status of deployment for the file */ - 'schedule_identifiers'?: Array; + 'status_code': string; + /** + * Any error or warning with the deployment + */ + 'status_message': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11733,19 +11621,34 @@ declare class SearchSchedulesRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SearchTagsRequest { + +declare class RevertResponse { + 'committer'?: CommiterType; + 'author'?: AuthorType; /** - * Name or Id of the tag. + * Comments associated with the commit */ - 'tag_identifier'?: string; + 'comment'?: string | null; /** - * A pattern to match case-insensitive name of the Tag object. + * Time at which the changes were committed. */ - 'name_pattern'?: string; + 'commit_time'?: string | null; /** - * Color of the tag. + * SHA id associated with the commit */ - 'color'?: string; + 'commit_id'?: string | null; + /** + * Branch where changes were committed + */ + 'branch'?: string | null; + /** + * Files that were pushed as part of this commit + */ + 'committed_files'?: Array | null; + /** + * Metadata of reverted file of this commit + */ + 'reverted_metadata'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11773,18 +11676,9 @@ declare class SearchTagsRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options to filter group details. -*/ -declare class SearchUserGroupsRequestSortOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: SearchUserGroupsRequestSortOptionsFieldNameEnum | null; - /** - * Sort order : ASC(Ascending) or DESC(Descending). - */ - 'order'?: SearchUserGroupsRequestSortOptionsOrderEnum | null; +declare class RevokeTokenRequest { + 'user_identifier'?: string; + 'token'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11800,8 +11694,6 @@ declare class SearchUserGroupsRequestSortOptions { }[]; constructor(); } -type SearchUserGroupsRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SearchUserGroupsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -11814,73 +11706,9 @@ type SearchUserGroupsRequestSortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchUserGroupsRequest { - /** - * GUID of Liveboards that are assigned as default Liveboards to the users in the group. - */ - 'default_liveboard_identifiers'?: Array; - /** - * Description of the group - */ - 'description'?: string; - /** - * Display name of the group - */ - 'display_name'?: string; - /** - * A pattern to match case-insensitive name of the Group object. - */ - 'name_pattern'?: string; - /** - * GUID or name of the group - */ - 'group_identifier'?: string; - /** - * ID or name of the Org to which the group belongs - */ - 'org_identifiers'?: Array; - /** - * Privileges assigned to the group. - */ - 'privileges'?: Array; - /** - * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. - */ - 'sub_group_identifiers'?: Array; - /** - * Group type. - */ - 'type'?: SearchUserGroupsRequestTypeEnum; - /** - * GUID or name of the users assigned to the group. - */ - 'user_identifiers'?: Array; - /** - * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. - */ - 'visibility'?: SearchUserGroupsRequestVisibilityEnum; - /** - * Filter groups with a list of Roles assigned to a group - */ - 'role_identifiers'?: Array; - /** - * The starting record number from where the records should be included. - */ - 'record_offset'?: number; - /** - * The number of records that should be included. - */ - 'record_size'?: number; - 'sort_options'?: SearchUserGroupsRequestSortOptions; - /** - *
Version: 10.10.0.cl or later
Define Parameter to consider if the users should be included in group search response. - */ - 'include_users'?: boolean | null; - /** - *
Version: 10.10.0.cl or later
Define Parameter to consider if the sub groups should be included in group search response. - */ - 'include_sub_groups'?: boolean | null; +declare class RiseGQLArgWrapper { + 'name': string; + 'type': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11896,9 +11724,6 @@ declare class SearchUserGroupsRequest { }[]; constructor(); } -type SearchUserGroupsRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchUserGroupsRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -11911,18 +11736,45 @@ type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * https://openapi-generator.tech * Do not edit the class manually. */ +declare class RiseSetter { + 'field': string; + 'path': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + /** -* Sort options. -*/ -declare class SearchUsersRequestSortOptions { + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class Role { /** - * Name of the field to apply the sort on. + * id of the role */ - 'field_name'?: SearchUsersRequestSortOptionsFieldNameEnum | null; + 'id'?: string | null; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * name of the role */ - 'order'?: SearchUsersRequestSortOptionsOrderEnum | null; + 'name'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -11938,8 +11790,6 @@ declare class SearchUsersRequestSortOptions { }[]; constructor(); } -type SearchUsersRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SearchUsersRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -11953,84 +11803,75 @@ type SearchUsersRequestSortOptionsOrderEnum = "ASC" | "DESC"; * Do not edit the class manually. */ -declare class SearchUsersRequest { +declare class RoleResponse { /** - * GUID / name of the user to search + * Unique Id of the role. */ - 'user_identifier'?: string; + 'id': string; /** - * A unique display name string for the user account, usually their first and last name + * Name of the role */ - 'display_name'?: string; + 'name': string; /** - * A pattern to match case-insensitive name of the User object. + * Description of the role */ - 'name_pattern'?: string; + 'description': string; /** - * Visibility of the user + * number of groups assigned with this role */ - 'visibility'?: SearchUsersRequestVisibilityEnum; + 'groups_assigned_count'?: number | null; /** - * Email of the user account + * Orgs in which role exists. */ - 'email'?: string; + 'orgs'?: Array | null; /** - * GUID or name of the group to which the user belongs + * Details of groups assigned with this role */ - 'group_identifiers'?: Array; + 'groups'?: Array | null; /** - * Privileges assigned to the user + * Privileges granted to the role. */ - 'privileges'?: Array; + 'privileges': Array; /** - * Type of the account + * Permission details of the Role */ - 'account_type'?: SearchUsersRequestAccountTypeEnum; + 'permission'?: RoleResponsePermissionEnum | null; /** - * Current status of the user account. + * Unique identifier of author of the role. */ - 'account_status'?: SearchUsersRequestAccountStatusEnum; + 'author_id'?: string | null; /** - * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + * Unique identifier of modifier of the role. */ - 'notify_on_share'?: boolean | null; + 'modifier_id'?: string | null; /** - * The user preference for revisiting the onboarding experience + * Creation time of the role in milliseconds. */ - 'show_onboarding_experience'?: boolean | null; + 'creation_time_in_millis'?: any | null; /** - * Indicates if the user has completed the onboarding walkthrough + * Last modified time of the role in milliseconds. */ - 'onboarding_experience_completed'?: boolean | null; + 'modification_time_in_millis'?: any | null; /** - * IDs or names of the Orgs to which the user belongs + * Indicates whether the role is deleted. */ - 'org_identifiers'?: Array; + 'deleted'?: boolean | null; /** - * Unique ID or name of the user\'s home Liveboard. - */ - 'home_liveboard_identifier'?: string; - /** - * Metadata objects which are assigned as favorites of the user. - */ - 'favorite_metadata'?: Array; - /** - * The starting record number from where the records should be included. + * Indicates whether the role is deprecated. */ - 'record_offset'?: number; + 'deprecated'?: boolean | null; /** - * The number of records that should be included. + * Indicates whether the role is external. */ - 'record_size'?: number; - 'sort_options'?: SearchUsersRequestSortOptions; + 'external'?: boolean | null; /** - * Filters by the role assigned to the user. + * Indicates whether the role is hidden. */ - 'role_identifiers'?: Array; + 'hidden'?: boolean | null; /** - * Indicates if the user\'s favorite objects should be displayed. + * Indicates whether the role is shared via connection */ - 'include_favorite_metadata'?: boolean | null; + 'shared_via_connection'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12046,10 +11887,8 @@ declare class SearchUsersRequest { }[]; constructor(); } -type SearchUsersRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type SearchUsersRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type SearchUsersRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type RoleResponsePrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MANAGE_VARIABLES" | "CAN_MODIFY_FOLDERS" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -12063,21 +11902,13 @@ type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | " * Do not edit the class manually. */ /** -* Input for variable details in search +* List of runtime parameters need to set during the session. */ -declare class VariableDetailInput { - /** - * Unique ID or name of the variable - */ - 'identifier'?: string | null; - /** - * Type of variable - */ - 'type'?: VariableDetailInputTypeEnum | null; +declare class RuntimeFilter { /** - * A pattern to match case-insensitive name of the variable. User % for a wildcard match + * Runtime filter parameter type in JWT. */ - 'name_pattern'?: string | null; + 'runtime_filter'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12093,7 +11924,6 @@ declare class VariableDetailInput { }[]; constructor(); } -type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL"; /** * ThoughtSpot Public REST API @@ -12106,24 +11936,14 @@ type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CO * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SearchVariablesRequest { - /** - * Variable details - */ - 'variable_details'?: Array; - /** - * The starting record number from where the records should be included - */ - 'record_offset'?: number; - /** - * The number of records that should be included - */ - 'record_size'?: number; +/** +* List of runtime parameters need to set during the session. +*/ +declare class RuntimeParamOverride { /** - * Format in which we want the output + * Runtime param override type in JWT. */ - 'output_format'?: SearchVariablesRequestOutputFormatEnum; + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12139,7 +11959,6 @@ declare class SearchVariablesRequest { }[]; constructor(); } -type SearchVariablesRequestOutputFormatEnum = "METADATA_ONLY" | "METADATA_AND_VALUES" | "EDITABLE_METADATA_AND_VALUES"; /** * ThoughtSpot Public REST API @@ -12152,15 +11971,14 @@ type SearchVariablesRequestOutputFormatEnum = "METADATA_ONLY" | "METADATA_AND_VA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SendMessageRequest { - /** - * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. - */ - 'metadata_identifier': string; +/** +* List of runtime parameters need to set during the session. +*/ +declare class RuntimeSort { /** - * A message string with the follow-up question to continue the conversation. + * Runtime sort parameter type in JWT. */ - 'message': string; + 'runtime_sort'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12188,15 +12006,19 @@ declare class SendMessageRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ShareMetadataTypeInput { +declare class ScheduleHistoryRunsOptionsInput { /** - * Type of metadata. Type of metadata. 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. + * Indicates whether to fetch history runs for the scheduled notification. */ - 'type'?: ShareMetadataTypeInputTypeEnum | null; + 'include_history_runs'?: boolean | null; /** - * Unique ID or name of the metadata object. + * Indicates the max number of records that can be fetched as past runs of any scheduled job. */ - 'identifier': string; + 'record_size'?: number | null; + /** + * Indicates the starting record number from where history runs records should be fetched. + */ + 'record_offset'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12212,7 +12034,6 @@ declare class ShareMetadataTypeInput { }[]; constructor(); } -type ShareMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -12225,13 +12046,46 @@ type ShareMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class SharePermissionsInput { - 'principal': PrincipalsInput; +/** +* Options for PDF export. +*/ +declare class SchedulesPdfOptionsInput { /** - * Type of access to the shared object + * Indicates whether to include complete Liveboard. */ - 'share_mode': SharePermissionsInputShareModeEnum; + 'complete_liveboard'?: boolean | null; + /** + * Indicates whether to include cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page + */ + 'include_page_number'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: SchedulesPdfOptionsInputPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12247,7 +12101,7 @@ declare class SharePermissionsInput { }[]; constructor(); } -type SharePermissionsInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; +type SchedulesPdfOptionsInputPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -12260,48 +12114,19 @@ type SharePermissionsInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class ShareMetadataRequest { - /** - * Type of metadata. Required if identifier in metadata_identifies is a name. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN 5. Connection - */ - 'metadata_type'?: ShareMetadataRequestMetadataTypeEnum; - /** - * Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type - */ - 'metadata_identifiers'?: Array; - /** - * Metadata details for sharing objects. - */ - 'metadata'?: Array; - /** - * Permission details for sharing the objects. - */ - 'permissions': Array; - /** - * Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard. - */ - 'visualization_identifiers'?: Array; - /** - * Email IDs to which notifications will be sent. - */ - 'emails'?: Array; - /** - * Message to be included in notification. - */ - 'message': string; +declare class Scope { /** - * Sends object URLs in the customized format in email notifications. + * Object access scope type. */ - 'enable_custom_url'?: boolean | null; + 'access_type': string; /** - * Flag to notify user when any object is shared. + * Unique identifier of the metadata. */ - 'notify_on_share'?: boolean | null; + 'org_id'?: number | null; /** - * Flag to make the object discoverable. + * Unique identifier of the Org. */ - 'has_lenient_discoverability'?: boolean | null; + 'metadata_id'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12317,7 +12142,6 @@ declare class ShareMetadataRequest { }[]; constructor(); } -type ShareMetadataRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -12330,15 +12154,18 @@ type ShareMetadataRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TA * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SingleAnswerRequest { +/** +* Sort options. +*/ +declare class SearchCalendarsRequestSortOptions { /** - * A natural language query string to generate the Answer. + * Name of the field to apply the sort on. */ - 'query': string; + 'field_name'?: SearchCalendarsRequestSortOptionsFieldNameEnum | null; /** - * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'metadata_identifier': string; + 'order'?: SearchCalendarsRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12354,6 +12181,8 @@ declare class SingleAnswerRequest { }[]; constructor(); } +type SearchCalendarsRequestSortOptionsFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SearchCalendarsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -12366,15 +12195,25 @@ declare class SingleAnswerRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SortOption { + +declare class SearchCalendarsRequest { /** - * Name of the field to apply the sort on. + * Unique ID or name of the connection. */ - 'field_name'?: SortOptionFieldNameEnum | null; + 'connection_identifier'?: string; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Pattern to match for calendar names (use \'%\' for wildcard match). */ - 'order'?: SortOptionOrderEnum | null; + 'name_pattern'?: string; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchCalendarsRequestSortOptions; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12390,8 +12229,6 @@ declare class SortOption { }[]; constructor(); } -type SortOptionFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SortOptionOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -12404,15 +12241,27 @@ type SortOptionOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SortOptionInput { +declare class SearchCommitsRequest { /** - * Name of the field to apply the sort on. + * Unique ID or name of the metadata. */ - 'field_name'?: SortOptionInputFieldNameEnum | null; + 'metadata_identifier': string; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Type of metadata. */ - 'order'?: SortOptionInputOrderEnum | null; + 'metadata_type'?: SearchCommitsRequestMetadataTypeEnum; + /** + * Name of the branch from which commit history needs to be displayed. Note: If no branch_name is specified, then commits will be returned for the default branch for this configuration. + */ + 'branch_name'?: string; + /** + * Record offset point in the commit history to display the response. Note: If no record offset is specified, the beginning of the record will be considered. + */ + 'record_offset'?: number; + /** + * Number of history records from record offset point to be displayed in the response. Note: If no record size is specified, then all the records will be considered. + */ + 'record_size'?: number; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12428,8 +12277,7 @@ declare class SortOptionInput { }[]; constructor(); } -type SortOptionInputFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; -type SortOptionInputOrderEnum = "ASC" | "DESC"; +type SearchCommitsRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "CUSTOM_ACTION"; /** * ThoughtSpot Public REST API @@ -12442,18 +12290,16 @@ type SortOptionInputOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options. -*/ -declare class SortOptions { + +declare class SearchCommunicationChannelPreferencesRequest { /** - * Name of the field to apply the sort on. + * Event types to search for in cluster-level preferences. */ - 'field_name'?: SortOptionsFieldNameEnum | null; + 'cluster_preferences'?: Array; /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Org-specific search criteria. */ - 'order'?: SortOptionsOrderEnum | null; + 'org_preferences'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12469,8 +12315,7 @@ declare class SortOptions { }[]; constructor(); } -type SortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; -type SortOptionsOrderEnum = "ASC" | "DESC"; +type SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -12483,18 +12328,11 @@ type SortOptionsOrderEnum = "ASC" | "DESC"; * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Sort options. -*/ -declare class SortingOptions { - /** - * Name of the field to apply the sort on. - */ - 'field_name'?: string | null; +declare class SearchConfigRequest { /** - * Sort order : ASC(Ascending) or DESC(Descending). + * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later */ - 'order'?: string | null; + 'org_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12523,21 +12361,17 @@ declare class SortingOptions { * Do not edit the class manually. */ /** -* Response format associated with fetch SQL query api +* Sort options. */ -declare class SqlQuery { - /** - * Unique identifier of the metadata. - */ - 'metadata_id': string; +declare class SearchConnectionRequestSortOptions { /** - * Name of the metadata. + * Name of the field to apply the sort on. */ - 'metadata_name': string; + 'field_name'?: SearchConnectionRequestSortOptionsFieldNameEnum | null; /** - * SQL query of a metadata object. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'sql_query': string; + 'order'?: SearchConnectionRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12553,6 +12387,8 @@ declare class SqlQuery { }[]; constructor(); } +type SearchConnectionRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; +type SearchConnectionRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -12566,23 +12402,48 @@ declare class SqlQuery { * Do not edit the class manually. */ -declare class SqlQueryResponse { +declare class SearchConnectionRequest { /** - * Unique identifier of the metadata. + * List of connections and name pattern */ - 'metadata_id': string; + 'connections'?: Array; /** - * Name of the metadata. + * Array of types of data warehouse defined for the connection. */ - 'metadata_name': string; + 'data_warehouse_types'?: Array; /** - * Type of the metadata. + * The starting record number from where the records should be included. */ - 'metadata_type': SqlQueryResponseMetadataTypeEnum; + 'record_offset'?: number; /** - * SQL query details of metadata objects. + * The number of records that should be included. */ - 'sql_queries': Array; + 'record_size'?: number; + /** + * Unique ID or name of tags. + */ + 'tag_identifiers'?: Array; + /** + * Data warehouse object type. + */ + 'data_warehouse_object_type'?: SearchConnectionRequestDataWarehouseObjectTypeEnum; + 'sort_options'?: SearchConnectionRequestSortOptions; + /** + * Indicates whether to include complete details of the connection objects. + */ + 'include_details'?: boolean | null; + /** + * Configuration values. If empty we are fetching configuration from datasource based on given connection id. If required you can provide config details to fetch specific details. Example input: {}, {\"warehouse\":\"SMALL_WH\",\"database\":\"DEVELOPMENT\"}. This is only applicable when data_warehouse_object_type is selected. + */ + 'configuration'?: any; + /** + * List of authentication types to fetch data_ware_house_objects from external Data warehouse. This is only applicable when data_warehouse_object_type is selected. + */ + 'authentication_type'?: SearchConnectionRequestAuthenticationTypeEnum; + /** + *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. + */ + 'show_resolved_parameters'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12598,7 +12459,9 @@ declare class SqlQueryResponse { }[]; constructor(); } -type SqlQueryResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; +type SearchConnectionRequestDataWarehouseTypesEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; +type SearchConnectionRequestDataWarehouseObjectTypeEnum = "DATABASE" | "SCHEMA" | "TABLE" | "COLUMN"; +type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "IAM" | "EXTOAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "PERSONAL_ACCESS_TOKEN" | "KEY_PAIR" | "OAUTH_WITH_PKCE" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PEZ" | "OAUTH_CLIENT_CREDENTIALS"; /** * ThoughtSpot Public REST API @@ -12611,128 +12474,29 @@ type SqlQueryResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SystemConfig { - 'onboarding_content_url'?: string | null; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -declare class SystemInfo { - /** - * The unique identifier of the object - */ - 'id'?: string | null; - /** - * Name of the cluster. - */ - 'name'?: string | null; - /** - * The release version of the cluster. - */ - 'release_version'?: string | null; - /** - * The timezone of the cluster. - */ - 'time_zone'?: string | null; - /** - * The default locale of the cluster. - */ - 'locale'?: string | null; - /** - * The default date format representation of the cluster. - */ - 'date_format'?: string | null; - /** - * The API version of the cluster. - */ - 'api_version'?: string | null; - /** - * The deployment type of the cluster. - */ - 'type'?: string | null; - /** - * The deployed environment of the cluster. - */ - 'environment'?: string | null; - /** - * The license applied to the cluster. - */ - 'license'?: string | null; - /** - * The default date time format representation of the cluster. - */ - 'date_time_format'?: string | null; - /** - * The default time format representation of the cluster. - */ - 'time_format'?: string | null; - /** - * The unique identifier of system user. - */ - 'system_user_id'?: string | null; - /** - * The unique identifier of super user. - */ - 'super_user_id'?: string | null; - /** - * The unique identifier of hidden object. - */ - 'hidden_object_id'?: string | null; - /** - * The unique identifier of system group. - */ - 'system_group_id'?: string | null; - /** - * The unique identifier of tsadmin user. - */ - 'tsadmin_user_id'?: string | null; - /** - * The unique identifier of admin group. - */ - 'admin_group_id'?: string | null; +declare class SearchConnectionResponse { /** - * The unique identifier of all tables connection. + * Unique ID of the connection. */ - 'all_tables_connection_id'?: string | null; + 'id': string; /** - * The unique identifier of ALL group. + * Name of the connection. */ - 'all_user_group_id'?: string | null; + 'name': string; /** - * The supported accept language by the cluster. + * Description of the connection. */ - 'accept_language'?: string | null; + 'description'?: string | null; /** - * The count of users of ALL group. + * Type of data warehouse. */ - 'all_user_group_member_user_count'?: number | null; + 'data_warehouse_type': SearchConnectionResponseDataWarehouseTypeEnum; + 'data_warehouse_objects'?: DataWarehouseObjects; /** - * The version number of logical model of the cluster. + * Details of the connection. */ - 'logical_model_version'?: number | null; + 'details'?: any | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12748,6 +12512,7 @@ declare class SystemInfo { }[]; constructor(); } +type SearchConnectionResponseDataWarehouseTypeEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE"; /** * ThoughtSpot Public REST API @@ -12760,8 +12525,14 @@ declare class SystemInfo { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class SystemOverrideInfo { - 'config_override_info'?: any | null; +/** +* Default Custom action configuration. This includes if the custom action is available on all visualizations. By default, a custom action is added to all visualizations and Answers. +*/ +declare class SearchCustomActionsRequestDefaultActionConfig { + /** + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + */ + 'visibility'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12789,19 +12560,33 @@ declare class SystemOverrideInfo { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class Tag { - 'name': string; - 'id': string; - 'color'?: string | null; - 'deleted'?: boolean | null; - 'hidden'?: boolean | null; - 'external'?: boolean | null; - 'deprecated'?: boolean | null; - 'creation_time_in_millis'?: number | null; - 'modification_time_in_millis'?: number | null; - 'author_id'?: string | null; - 'modifier_id'?: string | null; - 'owner_id'?: string | null; + +declare class SearchCustomActionsRequest { + /** + * Name or ID of the custom action. + */ + 'custom_action_identifier'?: string; + /** + * A pattern to match case-insensitive name of the custom-action object. + */ + 'name_pattern'?: string; + 'default_action_config'?: SearchCustomActionsRequestDefaultActionConfig; + /** + * When set to true, returns the associated groups for a custom action. + */ + 'include_group_associations'?: boolean | null; + /** + * When set to true, returns the associated metadata for a custom action. + */ + 'include_metadata_associations'?: boolean | null; + /** + * Search with a given metadata identifier. + */ + 'metadata'?: Array; + /** + * Filter the action objects based on type + */ + 'type'?: SearchCustomActionsRequestTypeEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12817,6 +12602,7 @@ declare class Tag { }[]; constructor(); } +type SearchCustomActionsRequestTypeEnum = "CALLBACK" | "URL"; /** * ThoughtSpot Public REST API @@ -12829,102 +12615,39 @@ declare class Tag { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Email customization configuration properties -*/ -declare class TemplatePropertiesInputCreate { +declare class SearchDataRequest { /** - * Background color for call-to-action button in hex format - */ - 'cta_button_bg_color'?: string | null; - /** - * Text color for call-to-action button in hex format - */ - 'cta_text_font_color'?: string | null; - /** - * Primary background color in hex format - */ - 'primary_bg_color'?: string | null; - /** - * Home page URL (HTTP/HTTPS only) - */ - 'home_url'?: string | null; - /** - * Logo image URL (HTTP/HTTPS only) - */ - 'logo_url'?: string | null; - /** - * Font family for email content (e.g., Arial, sans-serif) - */ - 'font_family'?: string | null; - /** - * Product name to display - */ - 'product_name'?: string | null; - /** - * Footer address text - */ - 'footer_address'?: string | null; - /** - * Footer phone number - */ - 'footer_phone'?: string | null; - /** - * Replacement value for Liveboard - */ - 'replacement_value_for_liveboard'?: string | null; - /** - * Replacement value for Answer - */ - 'replacement_value_for_answer'?: string | null; - /** - * Replacement value for SpotIQ - */ - 'replacement_value_for_spot_iq'?: string | null; - /** - * Whether to hide footer address - */ - 'hide_footer_address'?: boolean | null; - /** - * Whether to hide footer phone number - */ - 'hide_footer_phone'?: boolean | null; - /** - * Whether to hide manage notification link - */ - 'hide_manage_notification'?: boolean | null; - /** - * Whether to hide mobile app nudge + * Query string with search tokens. For example, [Sales][Region]. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api) */ - 'hide_mobile_app_nudge'?: boolean | null; + 'query_string': string; /** - * Whether to hide privacy policy link + * GUID of the data source object, such as a Worksheet, View, or Table. You can find the GUID of a data object from the UI or via API. See [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_query) for more details. */ - 'hide_privacy_policy'?: boolean | null; + 'logical_table_identifier': string; /** - * Whether to hide product name + * JSON output in compact or full format. The FULL option is available in 9.12.5.cl or later. */ - 'hide_product_name'?: boolean | null; + 'data_format'?: SearchDataRequestDataFormatEnum; /** - * Whether to hide ThoughtSpot vocabulary definitions + * The starting record number from where the records should be included. */ - 'hide_ts_vocabulary_definitions'?: boolean | null; + 'record_offset'?: number; /** - * Whether to hide notification status + * The number of records to include in a batch. */ - 'hide_notification_status'?: boolean | null; + 'record_size'?: number; /** - * Whether to hide error message + * JSON object with representing filter condition to apply filters at runtime. For example, {\"col1\": \"item type\", \"op1\": \"EQ\", \"val1\": \"Bags\"} . You can add multiple keys by incrementing the number at the end, for example, col2, op2, val2, and col3, op3, val3. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_filters). */ - 'hide_error_message'?: boolean | null; + 'runtime_filter'?: any; /** - * Whether to hide unsubscribe link + * JSON object representing columns to sort data at runtime. For example, {\"sortCol1\": \"sales\", \"asc1\": true} . You can add multiple keys by incrementing the number at the end, for example, sortCol1, asc2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_sort). */ - 'hide_unsubscribe_link'?: boolean | null; + 'runtime_sort'?: any; /** - * Whether to hide modify alert + * JSON object for setting values of parameters at runtime. For example, {\"param1\": \"Double List Param\", \"paramVal1\": 0.5}. You can add multiple keys by incrementing the number at the end, for example, param2, paramVal2. For more information, see [API Documentation](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_parameters). */ - 'hide_modify_alert'?: boolean | null; + 'runtime_param_override'?: any; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -12940,6 +12663,7 @@ declare class TemplatePropertiesInputCreate { }[]; constructor(); } +type SearchDataRequestDataFormatEnum = "FULL" | "COMPACT"; /** * ThoughtSpot Public REST API @@ -12953,74 +12677,14 @@ declare class TemplatePropertiesInputCreate { * Do not edit the class manually. */ -declare class Token { - /** - * Bearer auth token. - */ - 'token': string; - /** - * Token creation time in milliseconds. - */ - 'creation_time_in_millis': number; - /** - * Token expiration time in milliseconds. - */ - 'expiration_time_in_millis': number; - 'scope': Scope; - /** - * Username to whom the token is issued. - */ - 'valid_for_user_id': string; - /** - * Unique identifier of the user to whom the token is issued. - */ - 'valid_for_username': string; - static readonly discriminator: string | undefined; - static readonly attributeTypeMap: Array<{ - name: string; - baseName: string; - type: string; - format: string; - }>; - static getAttributeTypeMap(): { - name: string; - baseName: string; - type: string; - format: string; - }[]; - constructor(); -} - /** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -declare class TokenValidationResponse { - /** - * Token creation time in milliseconds. - */ - 'creation_time_in_millis': number; - /** - * Token expiration time in milliseconds. - */ - 'expiration_time_in_millis': number; - 'scope': Scope; - /** - * Username to whom the token is issued. - */ - 'valid_for_user_id': string; +* Response format associated with the search data API. +*/ +declare class SearchDataResponse { /** - * Type of token. + * Data content of metadata objects */ - 'token_type': string; + 'contents': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13048,27 +12712,11 @@ declare class TokenValidationResponse { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UnparameterizeMetadataRequest { - /** - * Type of metadata object to unparameterize. - */ - 'metadata_type'?: UnparameterizeMetadataRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object to unparameterize. - */ - 'metadata_identifier': string; - /** - * Type of field in the metadata to unparameterize. - */ - 'field_type': UnparameterizeMetadataRequestFieldTypeEnum; - /** - * Name of the field which needs to be unparameterized. - */ - 'field_name': string; +declare class SearchEmailCustomizationRequest { /** - * The value to use in place of the variable for the field + * Unique ID or name of org Version: 10.12.0.cl or later */ - 'value': string; + 'org_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13084,8 +12732,6 @@ declare class UnparameterizeMetadataRequest { }[]; constructor(); } -type UnparameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; -type UnparameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; /** * ThoughtSpot Public REST API @@ -13098,24 +12744,18 @@ type UnparameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROP * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UnpublishMetadataRequest { - /** - * Force unpublishes the object. This will break all the dependent objects in the unpublished orgs. - */ - 'force'?: boolean | null; - /** - * Should we unpublish all the dependencies for the objects specified. The dependencies will be unpublished if no other published object is using it. - */ - 'include_dependencies': boolean; +/** +* Options to sort the API response by objects set as favorites for the logged-in user or the users specified in the API request. +*/ +declare class SearchMetadataRequestFavoriteObjectOptions { /** - * Metadata objects. + * Includes objects marked as favorite for the specified users. */ - 'metadata': Array; + 'include'?: boolean | null; /** - * Unique ID or name of orgs. + * Unique ID or name of the users. If not specified, the favorite objects of current logged in user are returned. */ - 'org_identifiers': Array; + 'user_identifiers'?: Array | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13144,25 +12784,17 @@ declare class UnpublishMetadataRequest { * Do not edit the class manually. */ /** -* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. +* Sort options to filter metadata details. */ -declare class UpdateCalendarRequestTableReference { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Name of the database. - */ - 'database_name'?: string | null; +declare class SearchMetadataRequestSortOptions { /** - * Name of the schema. + * Name of the field to apply the sort on. */ - 'schema_name'?: string | null; + 'field_name'?: SearchMetadataRequestSortOptionsFieldNameEnum | null; /** - * Name of the table. Table names may be case-sensitive depending on the database system. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'table_name': string; + 'order'?: SearchMetadataRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13178,6 +12810,8 @@ declare class UpdateCalendarRequestTableReference { }[]; constructor(); } +type SearchMetadataRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "VIEWS" | "FAVORITES" | "LAST_ACCESSED"; +type SearchMetadataRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13191,40 +12825,101 @@ declare class UpdateCalendarRequestTableReference { * Do not edit the class manually. */ -declare class UpdateCalendarRequest { +declare class SearchMetadataRequest { /** - * Type of update operation. + * Metadata objects such as Liveboards, Answers, and Worksheets. */ - 'update_method'?: UpdateCalendarRequestUpdateMethodEnum; - 'table_reference': UpdateCalendarRequestTableReference; + 'metadata'?: Array; /** - * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + * Object permission details to search by. */ - 'start_date'?: string; + 'permissions'?: Array; /** - * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + * GUID or name of user who created the metadata object. */ - 'end_date'?: string; + 'created_by_user_identifiers'?: Array; /** - * Type of the calendar. + * Version of the dependent table of the metadata objects like Worksheets. */ - 'calendar_type'?: UpdateCalendarRequestCalendarTypeEnum; + 'dependent_object_version'?: SearchMetadataRequestDependentObjectVersionEnum; /** - * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). + * List of metadata objects to exclude from search. */ - 'month_offset'?: UpdateCalendarRequestMonthOffsetEnum; + 'exclude_objects'?: Array; + 'favorite_object_options'?: SearchMetadataRequestFavoriteObjectOptions; /** - * Specify the starting day of the week + * Includes system-generated metadata objects. */ - 'start_day_of_week'?: UpdateCalendarRequestStartDayOfWeekEnum; + 'include_auto_created_objects'?: boolean | null; /** - * Prefix to add before the quarter. + * Includes dependents of the metadata object specified in the API request. For example, a worksheet can consist of dependent objects such as Liveboards or Answers. */ - 'quarter_name_prefix'?: string; + 'include_dependent_objects'?: boolean | null; /** - * Prefix to add before the year. + * The maximum number of dependents to include per metadata object. */ - 'year_name_prefix'?: string; + 'dependent_objects_record_size'?: number; + /** + * Includes complete details of the metadata objects. + */ + 'include_details'?: boolean | null; + /** + * Includes headers of the metadata objects. + */ + 'include_headers'?: boolean | null; + /** + * Includes details of the hidden objects, such as a column in a worksheet or a table. + */ + 'include_hidden_objects'?: boolean | null; + /** + * Includes objects with incomplete metadata. + */ + 'include_incomplete_objects'?: boolean | null; + /** + * Includes visualization headers of the specified Liveboard object. + */ + 'include_visualization_headers'?: boolean | null; + /** + * If search assistance lessons are configured on a worksheet, the API returns the search assist data for Worksheet objects. + */ + 'include_worksheet_search_assist_data'?: boolean | null; + /** + * Includes ID or names of the users who modified the metadata object. + */ + 'modified_by_user_identifiers'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. It is recommended to use a smaller `record_size` when fetching dependent objects or any of the additional metadata detail options. + */ + 'record_size'?: number; + 'sort_options'?: SearchMetadataRequestSortOptions; + /** + * Tags to filter metadata objects by + */ + 'tag_identifiers'?: Array; + /** + * Indicates whether to include stats of the metadata objects. + */ + 'include_stats'?: boolean | null; + /** + *
Version: 10.7.0.cl or later
Boolean to indicate whether to include discoverable metadata objects. + */ + 'include_discoverable_objects'?: boolean | null; + /** + *
Version: 10.9.0.cl or later
Indicates whether to show resolved parameterised values. + */ + 'show_resolved_parameters'?: boolean | null; + /** + * Indicates the model version of Liveboard to be attached in metadata detail. + */ + 'liveboard_response_version'?: SearchMetadataRequestLiveboardResponseVersionEnum; + /** + *
Version: 10.11.0.cl or later
If only published objects should be returned + */ + 'include_only_published_objects'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13240,10 +12935,8 @@ declare class UpdateCalendarRequest { }[]; constructor(); } -type UpdateCalendarRequestUpdateMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; -type UpdateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; -type UpdateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; -type UpdateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; +type SearchMetadataRequestDependentObjectVersionEnum = "V1" | "V2"; +type SearchMetadataRequestLiveboardResponseVersionEnum = "V1" | "V2"; /** * ThoughtSpot Public REST API @@ -13256,24 +12949,27 @@ type UpdateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateColumnSecurityRulesRequest { +declare class SearchOrgsRequest { /** - * GUID or name of the table for which we want to create column security rules + * ID or name of the Org */ - 'identifier'?: string; + 'org_identifier'?: string; /** - * The object ID of the table + * Description of the Org */ - 'obj_identifier'?: string; + 'description'?: string; /** - * If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed + * Visibility of the Org */ - 'clear_csr'?: boolean | null; + 'visibility'?: SearchOrgsRequestVisibilityEnum; /** - * Array where each object defines the security rule for a specific column + * Status of the Org */ - 'column_security_rules': Array; + 'status'?: SearchOrgsRequestStatusEnum; + /** + * GUIDs or names of the users for which you want to retrieve the Orgs data + */ + 'user_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13289,6 +12985,8 @@ declare class UpdateColumnSecurityRulesRequest { }[]; constructor(); } +type SearchOrgsRequestVisibilityEnum = "SHOW" | "HIDDEN"; +type SearchOrgsRequestStatusEnum = "ACTIVE" | "IN_ACTIVE"; /** * ThoughtSpot Public REST API @@ -13301,35 +12999,79 @@ declare class UpdateColumnSecurityRulesRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConfigRequest { + +/** +* Response for search role api should handle hidden privileges as well. +*/ +declare class SearchRoleResponse { /** - * Username to authenticate connection to version control system + * Unique Id of the role. */ - 'username'?: string; + 'id': string; /** - * Access token corresponding to the user to authenticate connection to version control system + * Name of the role */ - 'access_token'?: string; + 'name': string; /** - * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later + * Description of the role */ - 'org_identifier'?: string; + 'description': string; /** - * List the remote branches to configure. Example:[development, production] + * number of groups assigned with this role */ - 'branch_names'?: Array; + 'groups_assigned_count'?: number | null; /** - * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + * Orgs in which role exists. */ - 'commit_branch_name'?: string; + 'orgs'?: Array | null; /** - * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + * Details of groups assigned with this role */ - 'enable_guid_mapping'?: boolean | null; + 'groups'?: Array | null; /** - * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Version: 9.7.0.cl or later + * Privileges granted to the role. */ - 'configuration_branch_name'?: string; + 'privileges': Array; + /** + * Permission details of the Role + */ + 'permission'?: SearchRoleResponsePermissionEnum | null; + /** + * Unique identifier of author of the role. + */ + 'author_id'?: string | null; + /** + * Unique identifier of modifier of the role. + */ + 'modifier_id'?: string | null; + /** + * Creation time of the role in milliseconds. + */ + 'creation_time_in_millis'?: any | null; + /** + * Last modified time of the role in milliseconds. + */ + 'modification_time_in_millis'?: any | null; + /** + * Indicates whether the role is deleted. + */ + 'deleted'?: boolean | null; + /** + * Indicates whether the role is deprecated. + */ + 'deprecated'?: boolean | null; + /** + * Indicates whether the role is external. + */ + 'external'?: boolean | null; + /** + * Indicates whether the role is hidden. + */ + 'hidden'?: boolean | null; + /** + * Indicates whether the role is shared via connection + */ + 'shared_via_connection'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13345,6 +13087,8 @@ declare class UpdateConfigRequest { }[]; constructor(); } +type SearchRoleResponsePrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_VIEW_FOLDERS" | "CAN_MODIDY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -13357,43 +13101,39 @@ declare class UpdateConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConnectionConfigurationRequest { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; +declare class SearchRolesRequest { /** - * Name of the configuration to update. + * unique ID or name of the Roles */ - 'name'?: string; + 'role_identifiers'?: Array; /** - * Description of the configuration. + * Unique Id or name of the Organisation */ - 'description'?: string; + 'org_identifiers'?: Array; /** - * Type of authentication. + * Unique Id or name of the User Group */ - 'authentication_type'?: UpdateConnectionConfigurationRequestAuthenticationTypeEnum; + 'group_identifiers'?: Array; /** - * Configuration properties in JSON. + * Privileges assigned to the Role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. */ - 'configuration'?: any; + 'privileges'?: Array; /** - * Type of policy. + * Indicates whether the Role is deprecated. */ - 'policy_type'?: UpdateConnectionConfigurationRequestPolicyTypeEnum; + 'deprecated'?: boolean | null; /** - * Unique ID or name of the User and User Groups. + * Indicates whether the Role is external */ - 'policy_principals'?: Array; + 'external'?: boolean | null; /** - * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + * Indicates whether the Role is shared via connection */ - 'policy_processes'?: Array; + 'shared_via_connection'?: boolean | null; /** - * Indicates whether the configuration enable/disable. + * Permission details of the Role */ - 'disable'?: boolean | null; + 'permissions'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13409,9 +13149,8 @@ declare class UpdateConnectionConfigurationRequest { }[]; constructor(); } -type UpdateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "EXTOAUTH" | "KEY_PAIR" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PKCE" | "PERSONAL_ACCESS_TOKEN"; -type UpdateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; -type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; +type SearchRolesRequestPrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_VIEW_FOLDERS" | "CAN_MODIDY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; /** * ThoughtSpot Public REST API @@ -13424,27 +13163,22 @@ type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConnectionRequest { - /** - * Unique ID or name of the connection. - */ - 'connection_identifier': string; - /** - * Updated name of the connection. - */ - 'name'?: string; +/** +* Options while fetching history runs for the schedule. +*/ +declare class SearchSchedulesRequestHistoryRunsOptions { /** - * Updated description of the connection. + * Indicates whether to fetch history runs for the scheduled notification. */ - 'description'?: string; + 'include_history_runs'?: boolean | null; /** - * Configuration of the data warehouse in JSON. + * Indicates the max number of records that can be fetched as past runs of any scheduled job. */ - 'data_warehouse_config'?: any; + 'record_size'?: number | null; /** - * Indicates whether to validate the connection details. + * Indicates the starting record number from where history runs records should be fetched. */ - 'validate'?: boolean | null; + 'record_offset'?: number | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13472,23 +13206,18 @@ declare class UpdateConnectionRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateConnectionV2Request { +/** +* Sort options. +*/ +declare class SearchSchedulesRequestSortOptions { /** - * Updated name of the connection. + * Name of the field to apply the sort on. */ - 'name'?: string; + 'field_name'?: string | null; /** - * Updated description of the connection. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'description'?: string; - /** - * Configuration of the data warehouse in JSON. - */ - 'data_warehouse_config'?: any; - /** - * Indicates whether to validate the connection details. - */ - 'validate'?: boolean | null; + 'order'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13517,12 +13246,25 @@ declare class UpdateConnectionV2Request { * Do not edit the class manually. */ -/** -* Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required. -*/ -declare class UpdateCustomActionRequestActionDetails { - 'CALLBACK'?: CALLBACKInput; - 'URL'?: URLInput; +declare class SearchSchedulesRequest { + /** + * Metadata objects associated with the scheduled jobs. + */ + 'metadata'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchSchedulesRequestSortOptions; + 'history_runs_options'?: SearchSchedulesRequestHistoryRunsOptions; + /** + * unique ID or name of the Schedule + */ + 'schedule_identifiers'?: Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13550,14 +13292,19 @@ declare class UpdateCustomActionRequestActionDetails { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Default Custom action configuration. This includes if the custom action available on visualizations and Answers. By default, a custom action is added to all visualizations and Answers. -*/ -declare class UpdateCustomActionRequestDefaultActionConfig { +declare class SearchTagsRequest { /** - * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + * Name or Id of the tag. */ - 'visibility'?: boolean | null; + 'tag_identifier'?: string; + /** + * A pattern to match case-insensitive name of the Tag object. + */ + 'name_pattern'?: string; + /** + * Color of the tag. + */ + 'color'?: string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13585,26 +13332,18 @@ declare class UpdateCustomActionRequestDefaultActionConfig { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateCustomActionRequest { - 'action_details'?: UpdateCustomActionRequestActionDetails; - /** - * Metadata objects to which the custom action needs to be associated. - */ - 'associate_metadata'?: Array; - 'default_action_config'?: UpdateCustomActionRequestDefaultActionConfig; - /** - * Unique ID or name of the groups that can view and access the custom action. - */ - 'group_identifiers'?: Array; +/** +* Sort options to filter group details. +*/ +declare class SearchUserGroupsRequestSortOptions { /** - * Name of the custom action. The custom action name must be unique. + * Name of the field to apply the sort on. */ - 'name'?: string; + 'field_name'?: SearchUserGroupsRequestSortOptionsFieldNameEnum | null; /** - * Type of update operation. Default operation type is ADD + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'operation'?: UpdateCustomActionRequestOperationEnum; + 'order'?: SearchUserGroupsRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13620,7 +13359,8 @@ declare class UpdateCustomActionRequest { }[]; constructor(); } -type UpdateCustomActionRequestOperationEnum = "ADD" | "REMOVE"; +type SearchUserGroupsRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SearchUserGroupsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13634,12 +13374,72 @@ type UpdateCustomActionRequestOperationEnum = "ADD" | "REMOVE"; * Do not edit the class manually. */ -declare class UpdateEmailCustomizationRequest { - 'template_properties': CreateEmailCustomizationRequestTemplateProperties; +declare class SearchUserGroupsRequest { /** - * Unique ID or name of org + * GUID of Liveboards that are assigned as default Liveboards to the users in the group. */ - 'org_identifier'?: string; + 'default_liveboard_identifiers'?: Array; + /** + * Description of the group + */ + 'description'?: string; + /** + * Display name of the group + */ + 'display_name'?: string; + /** + * A pattern to match case-insensitive name of the Group object. + */ + 'name_pattern'?: string; + /** + * GUID or name of the group + */ + 'group_identifier'?: string; + /** + * ID or name of the Org to which the group belongs + */ + 'org_identifiers'?: Array; + /** + * Privileges assigned to the group. + */ + 'privileges'?: Array; + /** + * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + */ + 'sub_group_identifiers'?: Array; + /** + * Group type. + */ + 'type'?: SearchUserGroupsRequestTypeEnum; + /** + * GUID or name of the users assigned to the group. + */ + 'user_identifiers'?: Array; + /** + * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + */ + 'visibility'?: SearchUserGroupsRequestVisibilityEnum; + /** + * Filter groups with a list of Roles assigned to a group + */ + 'role_identifiers'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchUserGroupsRequestSortOptions; + /** + *
Version: 10.10.0.cl or later
Define Parameter to consider if the users should be included in group search response. + */ + 'include_users'?: boolean | null; + /** + *
Version: 10.10.0.cl or later
Define Parameter to consider if the sub groups should be included in group search response. + */ + 'include_sub_groups'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13655,6 +13455,9 @@ declare class UpdateEmailCustomizationRequest { }[]; constructor(); } +type SearchUserGroupsRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchUserGroupsRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; /** * ThoughtSpot Public REST API @@ -13667,16 +13470,18 @@ declare class UpdateEmailCustomizationRequest { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateMetadataHeaderRequest { +/** +* Sort options. +*/ +declare class SearchUsersRequestSortOptions { /** - * List of header objects to update. + * Name of the field to apply the sort on. */ - 'headers_update': Array; + 'field_name'?: SearchUsersRequestSortOptionsFieldNameEnum | null; /** - * Unique ID or name of the organization. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'org_identifier'?: string; + 'order'?: SearchUsersRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13692,6 +13497,8 @@ declare class UpdateMetadataHeaderRequest { }[]; constructor(); } +type SearchUsersRequestSortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SearchUsersRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13704,26 +13511,85 @@ declare class UpdateMetadataHeaderRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Input for updating object ID of a metadata object. -*/ -declare class UpdateObjIdInput { + +declare class SearchUsersRequest { /** - * GUID or name of the metadata object. + * GUID / name of the user to search */ - 'metadata_identifier'?: string | null; + 'user_identifier'?: string; /** - * Type of metadata. Required if metadata_identifier is name of the object. + * A unique display name string for the user account, usually their first and last name */ - 'type'?: UpdateObjIdInputTypeEnum | null; + 'display_name'?: string; /** - * Current object ID value. + * A pattern to match case-insensitive name of the User object. */ - 'current_obj_id'?: string | null; + 'name_pattern'?: string; /** - * New object ID value to set. + * Visibility of the user */ - 'new_obj_id': string; + 'visibility'?: SearchUsersRequestVisibilityEnum; + /** + * Email of the user account + */ + 'email'?: string; + /** + * GUID or name of the group to which the user belongs + */ + 'group_identifiers'?: Array; + /** + * Privileges assigned to the user + */ + 'privileges'?: Array; + /** + * Type of the account + */ + 'account_type'?: SearchUsersRequestAccountTypeEnum; + /** + * Current status of the user account. + */ + 'account_status'?: SearchUsersRequestAccountStatusEnum; + /** + * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for revisiting the onboarding experience + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Indicates if the user has completed the onboarding walkthrough + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * IDs or names of the Orgs to which the user belongs + */ + 'org_identifiers'?: Array; + /** + * Unique ID or name of the user\'s home Liveboard. + */ + 'home_liveboard_identifier'?: string; + /** + * Metadata objects which are assigned as favorites of the user. + */ + 'favorite_metadata'?: Array; + /** + * The starting record number from where the records should be included. + */ + 'record_offset'?: number; + /** + * The number of records that should be included. + */ + 'record_size'?: number; + 'sort_options'?: SearchUsersRequestSortOptions; + /** + * Filters by the role assigned to the user. + */ + 'role_identifiers'?: Array; + /** + * Indicates if the user\'s favorite objects should be displayed. + */ + 'include_favorite_metadata'?: boolean | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13739,7 +13605,10 @@ declare class UpdateObjIdInput { }[]; constructor(); } -type UpdateObjIdInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; +type SearchUsersRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type SearchUsersRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type SearchUsersRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; /** * ThoughtSpot Public REST API @@ -13752,12 +13621,26 @@ type UpdateObjIdInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateMetadataObjIdRequest { +/** +* Input for variable scope in search +*/ +declare class ValueScopeInput { /** - * List of metadata objects to update their object IDs. + * The unique name of the org */ - 'metadata': Array; + 'org_identifier'?: string | null; + /** + * Principal type + */ + 'principal_type'?: ValueScopeInputPrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * Model Identifier + */ + 'model_identifier'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13773,6 +13656,7 @@ declare class UpdateMetadataObjIdRequest { }[]; constructor(); } +type ValueScopeInputPrincipalTypeEnum = "USER" | "USER_GROUP"; /** * ThoughtSpot Public REST API @@ -13785,27 +13669,22 @@ declare class UpdateMetadataObjIdRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateOrgRequest { - /** - * Name of the Org - */ - 'name'?: string; - /** - * Description of the Org - */ - 'description'?: string; +/** +* Input for variable details in search +*/ +declare class VariableDetailInput { /** - * Add Users to an Org + * Unique ID or name of the variable */ - 'user_identifiers'?: Array; + 'identifier'?: string | null; /** - * Add Default Groups to an Org + * Type of variable */ - 'group_identifiers'?: Array; + 'type'?: VariableDetailInputTypeEnum | null; /** - * Type of update operation. Default operation type is ADD + * A pattern to match case-insensitive name of the variable. User % for a wildcard match */ - 'operation'?: UpdateOrgRequestOperationEnum; + 'name_pattern'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13821,7 +13700,7 @@ declare class UpdateOrgRequest { }[]; constructor(); } -type UpdateOrgRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE"; /** * ThoughtSpot Public REST API @@ -13834,19 +13713,28 @@ type UpdateOrgRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateRoleRequest { + +declare class SearchVariablesRequest { /** - * Name of the Role. + * Variable details */ - 'name': string; + 'variable_details'?: Array; /** - * Description of the Role. + * Array of scope filters */ - 'description'?: string; + 'value_scope'?: Array; /** - * Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. + * The starting record number from where the records should be included */ - 'privileges'?: Array; + 'record_offset'?: number; + /** + * The number of records that should be included + */ + 'record_size'?: number; + /** + * Format in which we want the output + */ + 'response_content'?: SearchVariablesRequestResponseContentEnum; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13862,7 +13750,7 @@ declare class UpdateRoleRequest { }[]; constructor(); } -type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "PREVIEW_THOUGHTSPOT_SAGE"; +type SearchVariablesRequestResponseContentEnum = "METADATA" | "METADATA_AND_VALUES"; /** * ThoughtSpot Public REST API @@ -13875,12 +13763,18 @@ type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | * https://openapi-generator.tech * Do not edit the class manually. */ - /** -* Frequency of the scheduled job run. +* Sort option includes sort field and sort order. */ -declare class UpdateScheduleRequestFrequency { - 'cron_expression': CronExpressionInput; +declare class SearchWebhookConfigurationsRequestSortOptions { + /** + * Name of the field to apply the sort on. + */ + 'field_name'?: SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum | null; + /** + * Sort order: ASC (Ascending) or DESC (Descending). + */ + 'order'?: SearchWebhookConfigurationsRequestSortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13896,6 +13790,8 @@ declare class UpdateScheduleRequestFrequency { }[]; constructor(); } +type SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum = "CREATED" | "MODIFIED" | "NAME"; +type SearchWebhookConfigurationsRequestSortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -13908,14 +13804,29 @@ declare class UpdateScheduleRequestFrequency { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options to specify the details of a Liveboard. -*/ -declare class UpdateScheduleRequestLiveboardOptions { + +declare class SearchWebhookConfigurationsRequest { /** - * Unique ID or name of visualizations. + * Unique ID or name of the org. */ - 'visualization_identifiers': Array; + 'org_identifier'?: string; + /** + * Unique ID or name of the webhook. + */ + 'webhook_identifier'?: string; + /** + * Type of webhook event to filter by. + */ + 'event_type'?: SearchWebhookConfigurationsRequestEventTypeEnum; + /** + * The offset point, starting from where the webhooks should be included in the response. + */ + 'record_offset'?: number; + /** + * The number of webhooks that should be included in the response starting from offset position. + */ + 'record_size'?: number; + 'sort_options'?: SearchWebhookConfigurationsRequestSortOptions; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13931,6 +13842,7 @@ declare class UpdateScheduleRequestLiveboardOptions { }[]; constructor(); } +type SearchWebhookConfigurationsRequestEventTypeEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -13943,46 +13855,11 @@ declare class UpdateScheduleRequestLiveboardOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -/** -* Options for PDF export. -*/ -declare class UpdateScheduleRequestPdfOptions { - /** - * Indicates whether to include complete Liveboard. - */ - 'complete_liveboard'?: boolean | null; - /** - * Indicates whether to include cover page with the Liveboard title. - */ - 'include_cover_page'?: boolean | null; - /** - * Indicates whether to include customized wide logo in the footer if available. - */ - 'include_custom_logo'?: boolean | null; - /** - * Indicates whether to include a page with all applied filters. - */ - 'include_filter_page'?: boolean | null; - /** - * Indicates whether to include page number in the footer of each page - */ - 'include_page_number'?: boolean | null; - /** - * Text to include in the footer of each page. - */ - 'page_footer_text'?: string | null; - /** - * Page orientation of the PDF. - */ - 'page_orientation'?: string | null; - /** - * Page size. - */ - 'page_size'?: UpdateScheduleRequestPdfOptionsPageSizeEnum | null; +declare class SendAgentMessageRequest { /** - * Indicates whether to include only first page of the tables. + * messages to be sent to the agent */ - 'truncate_table'?: boolean | null; + 'messages': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -13998,7 +13875,6 @@ declare class UpdateScheduleRequestPdfOptions { }[]; constructor(); } -type UpdateScheduleRequestPdfOptionsPageSizeEnum = "A4"; /** * ThoughtSpot Public REST API @@ -14011,19 +13887,9 @@ type UpdateScheduleRequestPdfOptionsPageSizeEnum = "A4"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Recipients of the scheduled job notifications. You can add the ID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. -*/ -declare class UpdateScheduleRequestRecipientDetails { - /** - * Emails of the recipients. - */ - 'emails'?: Array | null; - /** - * User or groups to be set as recipients of the schedule notifications. - */ - 'principals'?: Array | null; +declare class SendAgentMessageResponse { + 'success': boolean; + 'message'?: string | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14051,44 +13917,15 @@ declare class UpdateScheduleRequestRecipientDetails { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateScheduleRequest { - /** - * Name of the scheduled job. - */ - 'name'?: string; - /** - * Description of the scheduled job. - */ - 'description'?: string; - /** - * Type of metadata object. - */ - 'metadata_type'?: UpdateScheduleRequestMetadataTypeEnum; - /** - * Unique ID or name of the metadata object. - */ - 'metadata_identifier'?: string; - /** - * Export file format. - */ - 'file_format'?: UpdateScheduleRequestFileFormatEnum; - 'liveboard_options'?: UpdateScheduleRequestLiveboardOptions; - 'pdf_options'?: UpdateScheduleRequestPdfOptions; - /** - * Time zone - */ - 'time_zone'?: UpdateScheduleRequestTimeZoneEnum; - 'frequency'?: UpdateScheduleRequestFrequency; - 'recipient_details'?: UpdateScheduleRequestRecipientDetails; +declare class SendAgentMessageStreamingRequest { /** - * Status of the schedule + * Unique identifier for the conversation (used to track context) */ - 'status'?: UpdateScheduleRequestStatusEnum; + 'conversation_identifier': string; /** - * Personalised view id of the liveboard to be scheduled. + * messages to be sent to the agent */ - 'personalised_view_id'?: string; + 'messages': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14104,10 +13941,6 @@ declare class UpdateScheduleRequest { }[]; constructor(); } -type UpdateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; -type UpdateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; -type UpdateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; -type UpdateScheduleRequestStatusEnum = "ACTIVE" | "PAUSE"; /** * ThoughtSpot Public REST API @@ -14120,11 +13953,15 @@ type UpdateScheduleRequestStatusEnum = "ACTIVE" | "PAUSE"; * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateSystemConfigRequest { +declare class SendMessageRequest { /** - * Configuration JSON with the key-value pair of configuration attributes to be updated. + * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the conversation. */ - 'configuration': any; + 'metadata_identifier': string; + /** + * A message string with the follow-up question to continue the conversation. + */ + 'message': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14152,15 +13989,16 @@ declare class UpdateSystemConfigRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateTagRequest { + +declare class SetNLInstructionsRequest { /** - * Name of the tag. + * Unique ID or name of the data-model for which to set NL instructions. */ - 'name'?: string; + 'data_source_identifier': string; /** - * Hex color code to be assigned to the tag. For example, #ff78a9. + * List of NL instructions to set for the data-model. */ - 'color'?: string; + 'nl_instructions_info': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14188,51 +14026,15 @@ declare class UpdateTagRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class UpdateUserGroupRequest { - /** - * Name of the group to modify. - */ - 'name'?: string; - /** - * ID of the Liveboards to be assigned as default Liveboards to the users in the group. - */ - 'default_liveboard_identifiers'?: Array; - /** - * Description for the group. - */ - 'description'?: string; - /** - * Display name of the group. - */ - 'display_name'?: string; - /** - * Privileges to assign to the group. - */ - 'privileges'?: Array; - /** - * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. - */ - 'sub_group_identifiers'?: Array; - /** - * Type of the group - */ - 'type'?: UpdateUserGroupRequestTypeEnum; - /** - * GUID or name of the users to assign to the group. - */ - 'user_identifiers'?: Array; - /** - * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. - */ - 'visibility'?: UpdateUserGroupRequestVisibilityEnum; +declare class ShareMetadataTypeInput { /** - * Role identifiers of the Roles that should be assigned to the group. + * Type of metadata. Type of metadata. 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. */ - 'role_identifiers'?: Array; + 'type'?: ShareMetadataTypeInputTypeEnum | null; /** - * Type of update operation. Default operation type is REPLACE + * Unique ID or name of the metadata object. */ - 'operation'?: UpdateUserGroupRequestOperationEnum; + 'identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14248,10 +14050,7 @@ declare class UpdateUserGroupRequest { }[]; constructor(); } -type UpdateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL"; -type UpdateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type UpdateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type ShareMetadataTypeInputTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; /** * ThoughtSpot Public REST API @@ -14265,75 +14064,119 @@ type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * Do not edit the class manually. */ -declare class UpdateUserRequest { - /** - * Name of the user. The username string must be unique. - */ - 'name'?: string; - /** - * A unique display name string for the user account, usually their first and last name - */ - 'display_name'?: string; - /** - * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. - */ - 'visibility'?: UpdateUserRequestVisibilityEnum; +declare class SharePermissionsInput { + 'principal': PrincipalsInput; /** - * Email of the user account + * Type of access to the shared object */ - 'email'?: string; - /** - * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. - */ - 'account_status'?: UpdateUserRequestAccountStatusEnum; + 'share_mode': SharePermissionsInputShareModeEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type SharePermissionsInputShareModeEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class ShareMetadataRequest { /** - * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + * Type of metadata. Required if identifier in metadata_identifies is a name. 1. Liveboard 2. Answers 3. LOGICAL_TABLE for any data object such as table, worksheet or view. 4. LOGICAL_COLUMN 5. Connection */ - 'notify_on_share'?: boolean | null; + 'metadata_type'?: ShareMetadataRequestMetadataTypeEnum; /** - * The user preference for revisiting the onboarding experience. + * Unique ID or name of metadata objects. Note: All the names should belong to same metadata_type */ - 'show_onboarding_experience'?: boolean | null; + 'metadata_identifiers'?: Array; /** - * Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough. + * Metadata details for sharing objects. */ - 'onboarding_experience_completed'?: boolean | null; + 'metadata'?: Array; /** - * Type of the account. + * Permission details for sharing the objects. */ - 'account_type'?: UpdateUserRequestAccountTypeEnum; + 'permissions': Array; /** - * GUIDs or names of the groups. + * Options to specify details of Liveboard. First Liveboard encountered in payload is considered to be the corresponding Liveboard. */ - 'group_identifiers'?: Array; + 'visualization_identifiers'?: Array; /** - * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. + * Email IDs to which notifications will be sent. */ - 'home_liveboard_identifier'?: string; + 'emails'?: Array; /** - * Metadata objects to add to the user\'s favorites list. + * Message to be included in notification. */ - 'favorite_metadata'?: Array; + 'message': string; /** - * IDs of the Orgs. + * Sends object URLs in the customized format in email notifications. */ - 'org_identifiers'?: Array; + 'enable_custom_url'?: boolean | null; /** - * Type of update operation. Default operation type is REPLACE + * Flag to notify user when any object is shared. */ - 'operation'?: UpdateUserRequestOperationEnum; + 'notify_on_share'?: boolean | null; /** - * Locale for the user. + * Flag to make the object discoverable. */ - 'preferred_locale'?: UpdateUserRequestPreferredLocaleEnum; + 'has_lenient_discoverability'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type ShareMetadataRequestMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SingleAnswerRequest { /** - * Properties for the user + * A natural language query string to generate the Answer. */ - 'extended_properties'?: any; + 'query': string; /** - * Preferences for the user + * ID of the metadata object, such as a Worksheet or Model, to use as a data source for the query. */ - 'extended_preferences'?: any; + 'metadata_identifier': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14349,11 +14192,6 @@ declare class UpdateUserRequest { }[]; constructor(); } -type UpdateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type UpdateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type UpdateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type UpdateUserRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; -type UpdateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; /** * ThoughtSpot Public REST API @@ -14366,20 +14204,15 @@ type UpdateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateVariableRequest { - /** - * New name of the variable if we want to rename. - */ - 'name'?: string; +declare class SortOption { /** - * Operation to perform on the values. + * Name of the field to apply the sort on. */ - 'operation'?: UpdateVariableRequestOperationEnum; + 'field_name'?: SortOptionFieldNameEnum | null; /** - * Values of variable to be updated. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'values'?: Array; + 'order'?: SortOptionOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14395,7 +14228,8 @@ declare class UpdateVariableRequest { }[]; constructor(); } -type UpdateVariableRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type SortOptionFieldNameEnum = "DEFAULT" | "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SortOptionOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -14408,19 +14242,15 @@ type UpdateVariableRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Input for variable value update -*/ -declare class VariableValueInput { +declare class SortOptionInput { /** - * ID or Name of the variable + * Name of the field to apply the sort on. */ - 'variable_identifier': string; + 'field_name'?: SortOptionInputFieldNameEnum | null; /** - * Values of the variable + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'variable_values': Array; + 'order'?: SortOptionInputOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14436,6 +14266,8 @@ declare class VariableValueInput { }[]; constructor(); } +type SortOptionInputFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED" | "LAST_ACCESSED" | "SYNCED" | "VIEWS" | "USER_STATE" | "ROW_COUNT"; +type SortOptionInputOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -14448,16 +14280,18 @@ declare class VariableValueInput { * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class UpdateVariableValuesRequest { +/** +* Sort options. +*/ +declare class SortOptions { /** - * Variables and values + * Name of the field to apply the sort on. */ - 'variable_updates': Array; + 'field_name'?: SortOptionsFieldNameEnum | null; /** - * Type of update operation + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'operation': UpdateVariableValuesRequestOperationEnum; + 'order'?: SortOptionsOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14473,7 +14307,8 @@ declare class UpdateVariableValuesRequest { }[]; constructor(); } -type UpdateVariableValuesRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type SortOptionsFieldNameEnum = "NAME" | "DISPLAY_NAME" | "AUTHOR" | "CREATED" | "MODIFIED"; +type SortOptionsOrderEnum = "ASC" | "DESC"; /** * ThoughtSpot Public REST API @@ -14486,182 +14321,3008 @@ type UpdateVariableValuesRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; * https://openapi-generator.tech * Do not edit the class manually. */ - -declare class User { +/** +* Sort options. +*/ +declare class SortingOptions { /** - * Unique identifier of the user. + * Name of the field to apply the sort on. */ - 'id': string; + 'field_name'?: string | null; /** - * Name of the user. + * Sort order : ASC(Ascending) or DESC(Descending). */ - 'name': string; + 'order'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Response format associated with fetch SQL query api +*/ +declare class SqlQuery { /** - * Display name of the user. + * Unique identifier of the metadata. */ - 'display_name': string; + 'metadata_id': string; /** - * Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user. + * Name of the metadata. */ - 'visibility': UserVisibilityEnum; + 'metadata_name': string; /** - * Unique identifier of author of the user. + * SQL query of a metadata object. */ - 'author_id'?: string | null; + 'sql_query': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class SqlQueryResponse { /** - * Defines whether the user can change their password. + * Unique identifier of the metadata. */ - 'can_change_password'?: boolean | null; + 'metadata_id': string; /** - * Defines whether the response has complete detail of the user. + * Name of the metadata. */ - 'complete_detail'?: boolean | null; + 'metadata_name': string; /** - * Creation time of the user in milliseconds. + * Type of the metadata. */ - 'creation_time_in_millis'?: number | null; - 'current_org'?: Org; + 'metadata_type': SqlQueryResponseMetadataTypeEnum; /** - * Indicates whether the user is deleted. + * SQL query details of metadata objects. */ - 'deleted'?: boolean | null; + 'sql_queries': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type SqlQueryResponseMetadataTypeEnum = "LIVEBOARD" | "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "CONNECTION" | "TAG" | "USER" | "USER_GROUP" | "LOGICAL_RELATIONSHIP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SystemConfig { + 'onboarding_content_url'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SystemInfo { /** - * Indicates whether the user is deprecated. + * The unique identifier of the object */ - 'deprecated'?: boolean | null; + 'id'?: string | null; /** - * Type of the user account. + * Name of the cluster. */ - 'account_type'?: UserAccountTypeEnum | null; + 'name'?: string | null; /** - * Status of the user account. + * The release version of the cluster. */ - 'account_status'?: UserAccountStatusEnum | null; + 'release_version'?: string | null; /** - * Email of the user. + * The timezone of the cluster. */ - 'email'?: string | null; + 'time_zone'?: string | null; /** - * Expiration time of the user in milliseconds. + * The default locale of the cluster. */ - 'expiration_time_in_millis'?: number | null; + 'locale'?: string | null; /** - * Indicates whether the user is external. + * The default date format representation of the cluster. */ - 'external'?: boolean | null; + 'date_format'?: string | null; /** - * Metadata objects to add to the users\' favorites list. + * The API version of the cluster. */ - 'favorite_metadata'?: Array | null; + 'api_version'?: string | null; /** - * Timestamp of the first login session of the user in milliseconds. + * The deployment type of the cluster. */ - 'first_login_time_in_millis'?: number | null; + 'type'?: string | null; /** - * Group mask of the user. + * The deployed environment of the cluster. */ - 'group_mask'?: number | null; + 'environment'?: string | null; /** - * Indicates whether the user is hidden. + * The license applied to the cluster. */ - 'hidden'?: boolean | null; - 'home_liveboard'?: ObjectIDAndName; + 'license'?: string | null; /** - * Incomplete details of user if any present. + * The default date time format representation of the cluster. */ - 'incomplete_details'?: any | null; + 'date_time_format'?: string | null; /** - * Indicates whether it is first login of the user. + * The default time format representation of the cluster. */ - 'is_first_login'?: boolean | null; + 'time_format'?: string | null; /** - * Last modified time of the user in milliseconds. + * The unique identifier of system user. */ - 'modification_time_in_millis'?: number | null; + 'system_user_id'?: string | null; /** - * Unique identifier of modifier of the user. + * The unique identifier of super user. */ - 'modifier_id'?: string | null; + 'super_user_id'?: string | null; /** - * User preference for receiving email notifications on shared Answers or Liveboard. + * The unique identifier of hidden object. */ - 'notify_on_share'?: boolean | null; + 'hidden_object_id'?: string | null; /** - * The user preference for turning off the onboarding experience. + * The unique identifier of system group. */ - 'onboarding_experience_completed'?: boolean | null; + 'system_group_id'?: string | null; /** - * Orgs to which the user belongs. + * The unique identifier of tsadmin user. */ - 'orgs'?: Array | null; + 'tsadmin_user_id'?: string | null; /** - * Unique identifier of owner of the user. + * The unique identifier of admin group. */ - 'owner_id'?: string | null; + 'admin_group_id'?: string | null; /** - * Parent type of the user. + * The unique identifier of all tables connection. */ - 'parent_type'?: UserParentTypeEnum | null; + 'all_tables_connection_id'?: string | null; /** - * Privileges which are assigned to the user. + * The unique identifier of ALL group. */ - 'privileges'?: Array | null; + 'all_user_group_id'?: string | null; /** - * User\'s preference to revisit the new user onboarding experience. + * The supported accept language by the cluster. */ - 'show_onboarding_experience'?: boolean | null; + 'accept_language'?: string | null; /** - * Indicates whether the user is a super user. + * The count of users of ALL group. */ - 'super_user'?: boolean | null; + 'all_user_group_member_user_count'?: number | null; /** - * Indicates whether the user is a system user. + * The version number of logical model of the cluster. */ - 'system_user'?: boolean | null; + 'logical_model_version'?: number | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class SystemOverrideInfo { + 'config_override_info'?: any | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class Tag { + 'name': string; + 'id': string; + 'color'?: string | null; + 'deleted'?: boolean | null; + 'hidden'?: boolean | null; + 'external'?: boolean | null; + 'deprecated'?: boolean | null; + 'creation_time_in_millis'?: number | null; + 'modification_time_in_millis'?: number | null; + 'author_id'?: string | null; + 'modifier_id'?: string | null; + 'owner_id'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Email customization configuration properties +*/ +declare class TemplatePropertiesInputCreate { /** - * Tags associated with the user. + * Background color for call-to-action button in hex format */ - 'tags'?: Array | null; + 'cta_button_bg_color'?: string | null; + /** + * Text color for call-to-action button in hex format + */ + 'cta_text_font_color'?: string | null; + /** + * Primary background color in hex format + */ + 'primary_bg_color'?: string | null; + /** + * Home page URL (HTTP/HTTPS only) + */ + 'home_url'?: string | null; + /** + * Logo image URL (HTTP/HTTPS only) + */ + 'logo_url'?: string | null; + /** + * Font family for email content (e.g., Arial, sans-serif) + */ + 'font_family'?: string | null; + /** + * Product name to display + */ + 'product_name'?: string | null; + /** + * Footer address text + */ + 'footer_address'?: string | null; + /** + * Footer phone number + */ + 'footer_phone'?: string | null; + /** + * Replacement value for Liveboard + */ + 'replacement_value_for_liveboard'?: string | null; + /** + * Replacement value for Answer + */ + 'replacement_value_for_answer'?: string | null; + /** + * Replacement value for SpotIQ + */ + 'replacement_value_for_spot_iq'?: string | null; + /** + * Whether to hide footer address + */ + 'hide_footer_address'?: boolean | null; + /** + * Whether to hide footer phone number + */ + 'hide_footer_phone'?: boolean | null; + /** + * Whether to hide manage notification link + */ + 'hide_manage_notification'?: boolean | null; + /** + * Whether to hide mobile app nudge + */ + 'hide_mobile_app_nudge'?: boolean | null; + /** + * Whether to hide privacy policy link + */ + 'hide_privacy_policy'?: boolean | null; + /** + * Whether to hide product name + */ + 'hide_product_name'?: boolean | null; + /** + * Whether to hide ThoughtSpot vocabulary definitions + */ + 'hide_ts_vocabulary_definitions'?: boolean | null; + /** + * Whether to hide notification status + */ + 'hide_notification_status'?: boolean | null; + /** + * Whether to hide error message + */ + 'hide_error_message'?: boolean | null; + /** + * Whether to hide unsubscribe link + */ + 'hide_unsubscribe_link'?: boolean | null; + /** + * Whether to hide modify alert + */ + 'hide_modify_alert'?: boolean | null; + /** + * Company privacy policy URL (HTTP/HTTPS only) + */ + 'company_privacy_policy_url'?: string | null; + /** + * Company website URL (HTTP/HTTPS only) + */ + 'company_website_url'?: string | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class Token { + /** + * Bearer auth token. + */ + 'token': string; + /** + * Token creation time in milliseconds. + */ + 'creation_time_in_millis': number; + /** + * Token expiration time in milliseconds. + */ + 'expiration_time_in_millis': number; + 'scope': Scope; + /** + * Username to whom the token is issued. + */ + 'valid_for_user_id': string; + /** + * Unique identifier of the user to whom the token is issued. + */ + 'valid_for_username': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class TokenValidationResponse { + /** + * Token creation time in milliseconds. + */ + 'creation_time_in_millis': number; + /** + * Token expiration time in milliseconds. + */ + 'expiration_time_in_millis': number; + 'scope': Scope; + /** + * Username to whom the token is issued. + */ + 'valid_for_user_id': string; + /** + * Type of token. + */ + 'token_type': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UnparameterizeMetadataRequest { + /** + * Type of metadata object to unparameterize. + */ + 'metadata_type'?: UnparameterizeMetadataRequestMetadataTypeEnum; + /** + * Unique ID or name of the metadata object to unparameterize. + */ + 'metadata_identifier': string; + /** + * Type of field in the metadata to unparameterize. + */ + 'field_type': UnparameterizeMetadataRequestFieldTypeEnum; + /** + * Name of the field which needs to be unparameterized. + */ + 'field_name': string; + /** + * The value to use in place of the variable for the field + */ + 'value': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UnparameterizeMetadataRequestMetadataTypeEnum = "LOGICAL_TABLE" | "CONNECTION"; +type UnparameterizeMetadataRequestFieldTypeEnum = "ATTRIBUTE" | "CONNECTION_PROPERTY"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UnpublishMetadataRequest { + /** + * Force unpublishes the object. This will break all the dependent objects in the unpublished orgs. + */ + 'force'?: boolean | null; + /** + * Should we unpublish all the dependencies for the objects specified. The dependencies will be unpublished if no other published object is using it. + */ + 'include_dependencies': boolean; + /** + * Metadata objects. + */ + 'metadata': Array; + /** + * Unique ID or name of orgs. + */ + 'org_identifiers': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Table reference containing connection identifier and table details in this format: `{\"connection_identifier\":\"conn1\", \"database_name\":\"db1\", \"schema_name\":\"sc1\", \"table_name\":\"tb1\"}`. +*/ +declare class UpdateCalendarRequestTableReference { + /** + * Unique ID or name of the connection. + */ + 'connection_identifier': string; + /** + * Name of the database. + */ + 'database_name'?: string | null; + /** + * Name of the schema. + */ + 'schema_name'?: string | null; + /** + * Name of the table. Table names may be case-sensitive depending on the database system. + */ + 'table_name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateCalendarRequest { + /** + * Type of update operation. + */ + 'update_method'?: UpdateCalendarRequestUpdateMethodEnum; + 'table_reference': UpdateCalendarRequestTableReference; + /** + * Start date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + */ + 'start_date'?: string; + /** + * End date for the calendar in `MM/dd/yyyy` format. This parameter is mandatory if `update_method` is set as `FROM_INPUT_PARAMS`. + */ + 'end_date'?: string; + /** + * Type of the calendar. + */ + 'calendar_type'?: UpdateCalendarRequestCalendarTypeEnum; + /** + * Specify the month in which the fiscal or custom calendar year should start. For example, if you set `month_offset` to \"April\", the custom calendar will treat \"April\" as the first month of the year, and the related attributes such as quarters and start date will be based on this offset. The default value is `January`, which represents the standard calendar year (January to December). + */ + 'month_offset'?: UpdateCalendarRequestMonthOffsetEnum; + /** + * Specify the starting day of the week + */ + 'start_day_of_week'?: UpdateCalendarRequestStartDayOfWeekEnum; + /** + * Prefix to add before the quarter. + */ + 'quarter_name_prefix'?: string; + /** + * Prefix to add before the year. + */ + 'year_name_prefix'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateCalendarRequestUpdateMethodEnum = "FROM_INPUT_PARAMS" | "FROM_EXISTING_TABLE"; +type UpdateCalendarRequestCalendarTypeEnum = "MONTH_OFFSET" | "FOUR_FOUR_FIVE" | "FOUR_FIVE_FOUR" | "FIVE_FOUR_FOUR"; +type UpdateCalendarRequestMonthOffsetEnum = "January" | "February" | "March" | "April" | "May" | "June" | "July" | "August" | "September" | "October" | "November" | "December"; +type UpdateCalendarRequestStartDayOfWeekEnum = "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateColumnSecurityRulesRequest { + /** + * GUID or name of the table for which we want to create column security rules + */ + 'identifier'?: string; + /** + * The object ID of the table + */ + 'obj_identifier'?: string; + /** + * If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed + */ + 'clear_csr'?: boolean | null; + /** + * Array where each object defines the security rule for a specific column + */ + 'column_security_rules': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConfigRequest { + /** + * Username to authenticate connection to version control system + */ + 'username'?: string; + /** + * Access token corresponding to the user to authenticate connection to version control system + */ + 'access_token'?: string; + /** + * Applicable when Orgs is enabled in the cluster List of Org ids or name. Provide value -1 for cluster level. Example : [\"OrgID1-or-Name1\", \"OrgID2-or-Name2\"] Note: If no value is specified, then the configurations will be returned for all orgs the user has access to Version: 9.5.0.cl or later + */ + 'org_identifier'?: string; + /** + * List the remote branches to configure. Example:[development, production] + */ + 'branch_names'?: Array; + /** + * Name of the remote branch where objects from this Thoughtspot instance will be versioned. Version: 9.7.0.cl or later + */ + 'commit_branch_name'?: string; + /** + * Maintain mapping of guid for the deployment to an instance Version: 9.4.0.cl or later + */ + 'enable_guid_mapping'?: boolean | null; + /** + * Name of the branch where the configuration files related to operations between Thoughtspot and version control repo should be maintained. Version: 9.7.0.cl or later + */ + 'configuration_branch_name'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConnectionConfigurationRequest { + /** + * Unique ID or name of the connection. + */ + 'connection_identifier': string; + /** + * Name of the configuration to update. + */ + 'name'?: string; + /** + * Description of the configuration. + */ + 'description'?: string; + /** + * Type of authentication. + */ + 'authentication_type'?: UpdateConnectionConfigurationRequestAuthenticationTypeEnum; + /** + * Configuration properties in JSON. + */ + 'configuration'?: any; + /** + * Type of policy. + */ + 'policy_type'?: UpdateConnectionConfigurationRequestPolicyTypeEnum; + /** + * Unique ID or name of the User and User Groups. + */ + 'policy_principals'?: Array; + /** + * Action that the query performed on the data warehouse, such as SAGE_INDEXING and ROW_COUNT_STATS. + */ + 'policy_processes'?: Array; + /** + * Indicates whether the configuration enable/disable. + */ + 'disable'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "EXTOAUTH" | "KEY_PAIR" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PKCE" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_CLIENT_CREDENTIALS"; +type UpdateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES"; +type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConnectionRequest { + /** + * Unique ID or name of the connection. + */ + 'connection_identifier': string; + /** + * Updated name of the connection. + */ + 'name'?: string; + /** + * Updated description of the connection. + */ + 'description'?: string; + /** + * Configuration of the data warehouse in JSON. + */ + 'data_warehouse_config'?: any; + /** + * Indicates whether to validate the connection details. + */ + 'validate'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateConnectionV2Request { + /** + * Updated name of the connection. + */ + 'name'?: string; + /** + * Updated description of the connection. + */ + 'description'?: string; + /** + * Configuration of the data warehouse in JSON. + */ + 'data_warehouse_config'?: any; + /** + * Indicates whether to validate the connection details. + */ + 'validate'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Action details includes `Type` and Configuration for Custom Actions, either Callback or URL is required. +*/ +declare class UpdateCustomActionRequestActionDetails { + 'CALLBACK'?: CALLBACKInput; + 'URL'?: URLInput; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Default Custom action configuration. This includes if the custom action available on visualizations and Answers. By default, a custom action is added to all visualizations and Answers. +*/ +declare class UpdateCustomActionRequestDefaultActionConfig { + /** + * Custom action is available on all visualizations. Earlier naming convention: LOCAL/GLOBAL. TRUE signifies GLOBAL for backward compatibility. + */ + 'visibility'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateCustomActionRequest { + 'action_details'?: UpdateCustomActionRequestActionDetails; + /** + * Metadata objects to which the custom action needs to be associated. + */ + 'associate_metadata'?: Array; + 'default_action_config'?: UpdateCustomActionRequestDefaultActionConfig; + /** + * Unique ID or name of the groups that can view and access the custom action. + */ + 'group_identifiers'?: Array; + /** + * Name of the custom action. The custom action name must be unique. + */ + 'name'?: string; + /** + * Type of update operation. Default operation type is ADD + */ + 'operation'?: UpdateCustomActionRequestOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateCustomActionRequestOperationEnum = "ADD" | "REMOVE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateEmailCustomizationRequest { + 'template_properties': CreateEmailCustomizationRequestTemplateProperties; + /** + * Unique ID or name of org + */ + 'org_identifier'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateMetadataHeaderRequest { + /** + * List of header objects to update. + */ + 'headers_update': Array; + /** + * Unique ID or name of the organization. + */ + 'org_identifier'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Input for updating object ID of a metadata object. +*/ +declare class UpdateObjIdInput { + /** + * GUID or name of the metadata object. + */ + 'metadata_identifier'?: string | null; + /** + * Type of metadata. Required if metadata_identifier is name of the object. + */ + 'type'?: UpdateObjIdInputTypeEnum | null; + /** + * Current object ID value. + */ + 'current_obj_id'?: string | null; + /** + * New object ID value to set. + */ + 'new_obj_id': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateObjIdInputTypeEnum = "ANSWER" | "LOGICAL_TABLE" | "LOGICAL_COLUMN" | "LIVEBOARD" | "ACTION_OBJECT" | "DATA_SOURCE" | "USER" | "USER_GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateMetadataObjIdRequest { + /** + * List of metadata objects to update their object IDs. + */ + 'metadata': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateOrgRequest { + /** + * Name of the Org + */ + 'name'?: string; + /** + * Description of the Org + */ + 'description'?: string; + /** + * Add Users to an Org + */ + 'user_identifiers'?: Array; + /** + * Add Default Groups to an Org + */ + 'group_identifiers'?: Array; + /** + * Type of update operation. Default operation type is ADD + */ + 'operation'?: UpdateOrgRequestOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateOrgRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateRoleRequest { + /** + * Name of the Role. + */ + 'name': string; + /** + * Description of the Role. + */ + 'description'?: string; + /** + * Privileges granted to the role. See [Documentation](https://developers.thoughtspot.com/docs/rbac#_role_categories_and_privileges)for supported roles privileges. + */ + 'privileges'?: Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Frequency of the scheduled job run. +*/ +declare class UpdateScheduleRequestFrequency { + 'cron_expression': CronExpressionInput; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Options to specify the details of a Liveboard. +*/ +declare class UpdateScheduleRequestLiveboardOptions { + /** + * Unique ID or name of visualizations. + */ + 'visualization_identifiers': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Options for PDF export. +*/ +declare class UpdateScheduleRequestPdfOptions { + /** + * Indicates whether to include complete Liveboard. + */ + 'complete_liveboard'?: boolean | null; + /** + * Indicates whether to include cover page with the Liveboard title. + */ + 'include_cover_page'?: boolean | null; + /** + * Indicates whether to include customized wide logo in the footer if available. + */ + 'include_custom_logo'?: boolean | null; + /** + * Indicates whether to include a page with all applied filters. + */ + 'include_filter_page'?: boolean | null; + /** + * Indicates whether to include page number in the footer of each page + */ + 'include_page_number'?: boolean | null; + /** + * Text to include in the footer of each page. + */ + 'page_footer_text'?: string | null; + /** + * Page orientation of the PDF. + */ + 'page_orientation'?: string | null; + /** + * Page size. + */ + 'page_size'?: UpdateScheduleRequestPdfOptionsPageSizeEnum | null; + /** + * Indicates whether to include only first page of the tables. + */ + 'truncate_table'?: boolean | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateScheduleRequestPdfOptionsPageSizeEnum = "A4"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Recipients of the scheduled job notifications. You can add the ID or name of the ThoughtSpot users or groups as recipients in the `principals` array. If a recipient is not a ThoughtSpot user, specify email address. +*/ +declare class UpdateScheduleRequestRecipientDetails { + /** + * Emails of the recipients. + */ + 'emails'?: Array | null; + /** + * User or groups to be set as recipients of the schedule notifications. + */ + 'principals'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateScheduleRequest { + /** + * Name of the scheduled job. + */ + 'name'?: string; + /** + * Description of the scheduled job. + */ + 'description'?: string; + /** + * Type of metadata object. + */ + 'metadata_type'?: UpdateScheduleRequestMetadataTypeEnum; + /** + * Unique ID or name of the metadata object. + */ + 'metadata_identifier'?: string; + /** + * Export file format. + */ + 'file_format'?: UpdateScheduleRequestFileFormatEnum; + 'liveboard_options'?: UpdateScheduleRequestLiveboardOptions; + 'pdf_options'?: UpdateScheduleRequestPdfOptions; + /** + * Time zone + */ + 'time_zone'?: UpdateScheduleRequestTimeZoneEnum; + 'frequency'?: UpdateScheduleRequestFrequency; + 'recipient_details'?: UpdateScheduleRequestRecipientDetails; + /** + * Status of the schedule + */ + 'status'?: UpdateScheduleRequestStatusEnum; + /** + * Personalised view id of the liveboard to be scheduled. + */ + 'personalised_view_id'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateScheduleRequestMetadataTypeEnum = "LIVEBOARD"; +type UpdateScheduleRequestFileFormatEnum = "CSV" | "PDF" | "XLSX"; +type UpdateScheduleRequestTimeZoneEnum = "Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Nuuk" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Kyiv" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT0" | "Greenwich" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kanton" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROK" | "Singapore" | "SystemV/AST4" | "SystemV/AST4ADT" | "SystemV/CST6" | "SystemV/CST6CDT" | "SystemV/EST5" | "SystemV/EST5EDT" | "SystemV/HST10" | "SystemV/MST7" | "SystemV/MST7MDT" | "SystemV/PST8" | "SystemV/PST8PDT" | "SystemV/YST9" | "SystemV/YST9YDT" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu" | "EST" | "HST" | "MST" | "ACT" | "AET" | "AGT" | "ART" | "AST" | "BET" | "BST" | "CAT" | "CNT" | "CST" | "CTT" | "EAT" | "ECT" | "IET" | "IST" | "JST" | "MIT" | "NET" | "NST" | "PLT" | "PNT" | "PRT" | "PST" | "SST" | "VST"; +type UpdateScheduleRequestStatusEnum = "ACTIVE" | "PAUSE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateSystemConfigRequest { + /** + * Configuration JSON with the key-value pair of configuration attributes to be updated. + */ + 'configuration': any; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateTagRequest { + /** + * Name of the tag. + */ + 'name'?: string; + /** + * Hex color code to be assigned to the tag. For example, #ff78a9. + */ + 'color'?: string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateUserGroupRequest { + /** + * Name of the group to modify. + */ + 'name'?: string; + /** + * ID of the Liveboards to be assigned as default Liveboards to the users in the group. + */ + 'default_liveboard_identifiers'?: Array; + /** + * Description for the group. + */ + 'description'?: string; + /** + * Display name of the group. + */ + 'display_name'?: string; + /** + * Privileges to assign to the group. + */ + 'privileges'?: Array; + /** + * GUID or name of the sub groups. A subgroup is a group assigned to a parent group. + */ + 'sub_group_identifiers'?: Array; + /** + * Type of the group + */ + 'type'?: UpdateUserGroupRequestTypeEnum; + /** + * GUID or name of the users to assign to the group. + */ + 'user_identifiers'?: Array; + /** + * Visibility of the group. To make a group visible to other users and groups, set the visibility to SHAREABLE. + */ + 'visibility'?: UpdateUserGroupRequestVisibilityEnum; + /** + * Role identifiers of the Roles that should be assigned to the group. + */ + 'role_identifiers'?: Array; + /** + * Type of update operation. Default operation type is REPLACE + */ + 'operation'?: UpdateUserGroupRequestOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA"; +type UpdateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type UpdateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateUserRequest { + /** + * Name of the user. The username string must be unique. + */ + 'name'?: string; + /** + * A unique display name string for the user account, usually their first and last name + */ + 'display_name'?: string; + /** + * Visibility of the users. When set to SHARABLE, the user is visible to other users and groups when they try to share an object. + */ + 'visibility'?: UpdateUserRequestVisibilityEnum; + /** + * Email of the user account + */ + 'email'?: string; + /** + * Current status of the user account. The `SUSPENDED` user state indicates a transitional state applicable to IAMv2 users only. + */ + 'account_status'?: UpdateUserRequestAccountStatusEnum; + /** + * User preference for receiving email notifications when another ThoughtSpot user shares a metadata object such as Answer, Liveboard, or Worksheet. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for revisiting the onboarding experience. + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Indicates if the user has completed the onboarding and allows turning off the onboarding walkthrough. + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * Type of the account. + */ + 'account_type'?: UpdateUserRequestAccountTypeEnum; + /** + * GUIDs or names of the groups. + */ + 'group_identifiers'?: Array; + /** + * GUID of the Liveboard to set a default Liveboard for the user. ThoughtSpot displays this Liveboard on the Home page when the user logs in. + */ + 'home_liveboard_identifier'?: string; + /** + * Metadata objects to add to the user\'s favorites list. + */ + 'favorite_metadata'?: Array; + /** + * IDs of the Orgs. + */ + 'org_identifiers'?: Array; + /** + * Type of update operation. Default operation type is REPLACE + */ + 'operation'?: UpdateUserRequestOperationEnum; + /** + * Locale for the user. + */ + 'preferred_locale'?: UpdateUserRequestPreferredLocaleEnum; + /** + * Properties for the user + */ + 'extended_properties'?: any; + /** + * Preferences for the user + */ + 'extended_preferences'?: any; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateUserRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type UpdateUserRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type UpdateUserRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type UpdateUserRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE"; +type UpdateUserRequestPreferredLocaleEnum = "en-CA" | "en-GB" | "en-US" | "de-DE" | "ja-JP" | "zh-CN" | "pt-BR" | "fr-FR" | "fr-CA" | "es-US" | "da-DK" | "es-ES" | "fi-FI" | "sv-SE" | "nb-NO" | "pt-PT" | "nl-NL" | "it-IT" | "ru-RU" | "en-IN" | "de-CH" | "en-NZ" | "es-MX" | "en-AU" | "zh-Hant" | "ko-KR" | "en-DE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class UpdateVariableRequest { + /** + * New name of the variable. + */ + 'name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Input for variable value update in batch operations +*/ +declare class VariableUpdateAssignmentInput { + /** + * ID or Name of the variable + */ + 'variable_identifier': string; + /** + * Values of the variable + */ + 'variable_values': Array; + /** + * Operation to perform + */ + 'operation': VariableUpdateAssignmentInputOperationEnum; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableUpdateAssignmentInputOperationEnum = "ADD" | "REMOVE" | "REPLACE" | "RESET"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/** +* Input for variable value update in batch operations +*/ +declare class VariableUpdateScopeInput { + /** + * The unique name of the org + */ + 'org_identifier': string; + /** + * Principal type + */ + 'principal_type'?: VariableUpdateScopeInputPrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * Unique ID of the model + */ + 'model_identifier'?: string | null; + /** + * Priority level + */ + 'priority'?: number | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableUpdateScopeInputPrincipalTypeEnum = "USER" | "USER_GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateVariableValuesRequest { + /** + * Variables and values to update + */ + 'variable_assignment': Array; + /** + * Variables and values to update + */ + 'variable_value_scope': Array; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UpdateWebhookConfigurationRequest { + /** + * Name of the webhook configuration. + */ + 'name'?: string; + /** + * Description of the webhook configuration. + */ + 'description'?: string; + /** + * The webhook endpoint URL. + */ + 'url'?: string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any; + /** + * List of events to subscribe to. + */ + 'events'?: Array; + 'authentication'?: CreateWebhookConfigurationRequestAuthentication; + 'signature_verification'?: CreateWebhookConfigurationRequestSignatureVerification; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UpdateWebhookConfigurationRequestEventsEnum = "LIVEBOARD_SCHEDULE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class User { + /** + * Unique identifier of the user. + */ + 'id': string; + /** + * Name of the user. + */ + 'name': string; + /** + * Display name of the user. + */ + 'display_name': string; + /** + * Visibility of the users. The `SHARABLE` property makes a user visible to other users and group, who can share objects with the user. + */ + 'visibility': UserVisibilityEnum; + /** + * Unique identifier of author of the user. + */ + 'author_id'?: string | null; + /** + * Defines whether the user can change their password. + */ + 'can_change_password'?: boolean | null; + /** + * Defines whether the response has complete detail of the user. + */ + 'complete_detail'?: boolean | null; + /** + * Creation time of the user in milliseconds. + */ + 'creation_time_in_millis'?: number | null; + 'current_org'?: Org; + /** + * Indicates whether the user is deleted. + */ + 'deleted'?: boolean | null; + /** + * Indicates whether the user is deprecated. + */ + 'deprecated'?: boolean | null; + /** + * Type of the user account. + */ + 'account_type'?: UserAccountTypeEnum | null; + /** + * Status of the user account. + */ + 'account_status'?: UserAccountStatusEnum | null; + /** + * Email of the user. + */ + 'email'?: string | null; + /** + * Expiration time of the user in milliseconds. + */ + 'expiration_time_in_millis'?: number | null; + /** + * Indicates whether the user is external. + */ + 'external'?: boolean | null; + /** + * Metadata objects to add to the users\' favorites list. + */ + 'favorite_metadata'?: Array | null; + /** + * Timestamp of the first login session of the user in milliseconds. + */ + 'first_login_time_in_millis'?: number | null; + /** + * Group mask of the user. + */ + 'group_mask'?: number | null; + /** + * Indicates whether the user is hidden. + */ + 'hidden'?: boolean | null; + 'home_liveboard'?: ObjectIDAndName; + /** + * Incomplete details of user if any present. + */ + 'incomplete_details'?: any | null; + /** + * Indicates whether it is first login of the user. + */ + 'is_first_login'?: boolean | null; + /** + * Last modified time of the user in milliseconds. + */ + 'modification_time_in_millis'?: number | null; + /** + * Unique identifier of modifier of the user. + */ + 'modifier_id'?: string | null; + /** + * User preference for receiving email notifications on shared Answers or Liveboard. + */ + 'notify_on_share'?: boolean | null; + /** + * The user preference for turning off the onboarding experience. + */ + 'onboarding_experience_completed'?: boolean | null; + /** + * Orgs to which the user belongs. + */ + 'orgs'?: Array | null; + /** + * Unique identifier of owner of the user. + */ + 'owner_id'?: string | null; + /** + * Parent type of the user. + */ + 'parent_type'?: UserParentTypeEnum | null; + /** + * Privileges which are assigned to the user. + */ + 'privileges'?: Array | null; + /** + * User\'s preference to revisit the new user onboarding experience. + */ + 'show_onboarding_experience'?: boolean | null; + /** + * Indicates whether the user is a super user. + */ + 'super_user'?: boolean | null; + /** + * Indicates whether the user is a system user. + */ + 'system_user'?: boolean | null; + /** + * Tags associated with the user. + */ + 'tags'?: Array | null; + /** + * Unique identifier of tenant of the user. + */ + 'tenant_id'?: string | null; + /** + * Groups to which the user is assigned. + */ + 'user_groups'?: Array | null; + /** + * Inherited User Groups which the user is part of. + */ + 'user_inherited_groups'?: Array | null; + /** + * Indicates whether welcome email is sent for the user. + */ + 'welcome_email_sent'?: boolean | null; + /** + * Privileges which are assigned to the user with org. + */ + 'org_privileges'?: any | null; + /** + * Locale for the user. + */ + 'preferred_locale'?: string | null; + /** + * Properties for the user + */ + 'extended_properties'?: any | null; + /** + * Preferences for the user + */ + 'extended_preferences'?: any | null; + /** + * User Parameters which are specified for the user via JWToken + */ + 'user_parameters'?: any | null; + /** + * Access Control Properties which are specified for the user via JWToken + */ + 'access_control_properties'?: any | null; + /** + * Formula Variables which are specified for the user via JWToken + */ + 'variable_values'?: any | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type UserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; +type UserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; +type UserParentTypeEnum = "USER" | "GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class UserGroupResponse { + /** + * The unique identifier of the object + */ + 'author_id'?: string | null; + /** + * Indicates whether the response has complete detail of the group. + */ + 'complete_detail'?: boolean | null; + /** + * Content details of the group + */ + 'content'?: any | null; + /** + * Creation time of the group in milliseconds + */ + 'creation_time_in_millis'?: number | null; + /** + * Liveboards that are assigned as default Liveboards to the group. + */ + 'default_liveboards'?: Array | null; + /** + * Indicates whether the group is deleted + */ + 'deleted'?: boolean | null; + /** + * Indicates whether the group is deprecated + */ + 'deprecated'?: boolean | null; + /** + * Description of the group + */ + 'description'?: string | null; + /** + * Display name of the group. + */ + 'display_name': string; + /** + * Indicates whether the group is external + */ + 'external'?: boolean | null; + /** + * Generation number of the group + */ + 'generation_number'?: number | null; + /** + * Indicates whether the group is hidden + */ + 'hidden'?: boolean | null; + /** + * The unique identifier of the object + */ + 'id': string; + /** + * Index number of the group + */ + 'index'?: number | null; + /** + * Index version number of the group + */ + 'index_version'?: number | null; + /** + * Metadata version number of the group + */ + 'metadata_version'?: number | null; + /** + * Last modified time of the group in milliseconds. + */ + 'modification_time_in_millis'?: number | null; + /** + * The unique identifier of the object + */ + 'modifier_id'?: string | null; + /** + * Name of the group. + */ + 'name': string; + /** + * Orgs in which group exists. + */ + 'orgs'?: Array | null; + /** + * The unique identifier of the object + */ + 'owner_id'?: string | null; + /** + * Parent type of the group. + */ + 'parent_type'?: UserGroupResponseParentTypeEnum | null; + /** + * Privileges which are assigned to the group + */ + 'privileges'?: Array | null; + /** + * Groups who are part of the group + */ + 'sub_groups'?: Array | null; + /** + * Indicates whether the group is a system group. + */ + 'system_group'?: boolean | null; + /** + * Tags associated with the group. + */ + 'tags'?: Array | null; + /** + * Type of the group. + */ + 'type'?: UserGroupResponseTypeEnum | null; + /** + * Users who are part of the group. + */ + 'users'?: Array | null; + /** + * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + */ + 'visibility': UserGroupResponseVisibilityEnum; + /** + * List of roles assgined to the user + */ + 'roles'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type UserGroupResponseParentTypeEnum = "USER" | "GROUP"; +type UserGroupResponseTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP"; +type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* 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). +*/ +declare class UserParameterOptions { + 'objects'?: Array | null; + /** + * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` + */ + 'runtime_filters'?: Array | null; + /** + * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` + */ + 'runtime_sorts'?: Array | null; + /** + * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + */ + 'parameters'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class ValidateMergeRequest { + /** + * Name of the branch from which changes need to be picked for validation + */ + 'source_branch_name': string; + /** + * Name of the branch where files will be merged + */ + 'target_branch_name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class ValidateTokenRequest { + 'token': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class VariableValue { + /** + * The value of the variable + */ + 'value'?: string | null; + /** + * The value of the variable if it is a list type + */ + 'value_list'?: Array | null; + /** + * The unique name of the org + */ + 'org_identifier': string; + /** + * Principal type + */ + 'principal_type'?: VariableValuePrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + */ + 'priority'?: number | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** +* Variable object +*/ +declare class Variable { + /** + * Unique identifier of the variable + */ + 'id': string; + /** + * Name of the variable + */ + 'name': string; + /** + * Type of the variable + */ + 'variable_type'?: VariableVariableTypeEnum | null; + /** + * If the variable is sensitive + */ + 'sensitive'?: boolean | null; + /** + * Values of the variable + */ + 'values'?: Array | null; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type VariableVariableTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookAuthApiKey { /** - * Unique identifier of tenant of the user. + * The header or query parameter name for the API key. */ - 'tenant_id'?: string | null; + 'key': string; /** - * Groups to which the user is assigned. + * The API key value. */ - 'user_groups'?: Array | null; + 'value': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookAuthBasicAuth { /** - * Inherited User Groups which the user is part of. + * Username for basic authentication. */ - 'user_inherited_groups'?: Array | null; + 'username': string; /** - * Indicates whether welcome email is sent for the user. + * Password for basic authentication. */ - 'welcome_email_sent'?: boolean | null; + 'password': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookAuthOAuth2 { /** - * Privileges which are assigned to the user with org. + * OAuth2 authorization server URL. */ - 'org_privileges'?: any | null; + 'authorization_url': string; /** - * Locale for the user. + * OAuth2 client identifier. */ - 'preferred_locale'?: string | null; + 'client_id': string; /** - * Properties for the user + * OAuth2 client secret key. */ - 'extended_properties'?: any | null; + 'client_secret': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class WebhookAuthentication { + 'API_KEY'?: WebhookAuthApiKey; + 'BASIC_AUTH'?: WebhookAuthBasicAuth; /** - * Preferences for the user + * Redacted Bearer token authentication configuration. */ - 'extended_preferences'?: any | null; + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +declare class WebhookAuthenticationInput { + 'API_KEY'?: WebhookAuthApiKeyInput; + 'BASIC_AUTH'?: WebhookAuthBasicAuthInput; + /** + * Bearer token authentication configuration. + */ + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2Input; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookDeleteFailure { + /** + * Unique identifier of the webhook that failed to delete. + */ + 'id': string; + /** + * Name of the webhook that failed to delete. + */ + 'name': string; + /** + * Error message describing why the deletion failed. + */ + 'error': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookOrg { + /** + * Unique identifier of the org. + */ + 'id': string; + /** + * Name of the org. + */ + 'name': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookSignatureVerification { + /** + * Signature verification method type. + */ + 'type': WebhookSignatureVerificationTypeEnum; + /** + * HTTP header where the signature is sent. + */ + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': WebhookSignatureVerificationAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; + static readonly discriminator: string | undefined; + static readonly attributeTypeMap: Array<{ + name: string; + baseName: string; + type: string; + format: string; + }>; + static getAttributeTypeMap(): { + name: string; + baseName: string; + type: string; + format: string; + }[]; + constructor(); +} +type WebhookSignatureVerificationTypeEnum = "HMAC_SHA256"; +type WebhookSignatureVerificationAlgorithmEnum = "SHA256"; + +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +declare class WebhookUser { /** - * User Parameters which are specified for the user via JWToken + * Unique identifier of the user. */ - 'user_parameters'?: any | null; + 'id': string; /** - * Access Control Properties which are specified for the user via JWToken + * Name of the user. */ - 'access_control_properties'?: any | null; + 'name': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14677,10 +17338,6 @@ declare class User { }[]; constructor(); } -type UserVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; -type UserAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER"; -type UserAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED"; -type UserParentTypeEnum = "USER" | "GROUP"; /** * ThoughtSpot Public REST API @@ -14694,127 +17351,44 @@ type UserParentTypeEnum = "USER" | "GROUP"; * Do not edit the class manually. */ -declare class UserGroupResponse { - /** - * The unique identifier of the object - */ - 'author_id'?: string | null; - /** - * Indicates whether the response has complete detail of the group. - */ - 'complete_detail'?: boolean | null; - /** - * Content details of the group - */ - 'content'?: any | null; - /** - * Creation time of the group in milliseconds - */ - 'creation_time_in_millis'?: number | null; - /** - * Liveboards that are assigned as default Liveboards to the group. - */ - 'default_liveboards'?: Array | null; - /** - * Indicates whether the group is deleted - */ - 'deleted'?: boolean | null; - /** - * Indicates whether the group is deprecated - */ - 'deprecated'?: boolean | null; - /** - * Description of the group - */ - 'description'?: string | null; - /** - * Display name of the group. - */ - 'display_name': string; - /** - * Indicates whether the group is external - */ - 'external'?: boolean | null; - /** - * Generation number of the group - */ - 'generation_number'?: number | null; - /** - * Indicates whether the group is hidden - */ - 'hidden'?: boolean | null; +declare class WebhookResponse { /** - * The unique identifier of the object + * Unique identifier of the webhook configuration. */ 'id': string; /** - * Index number of the group - */ - 'index'?: number | null; - /** - * Index version number of the group - */ - 'index_version'?: number | null; - /** - * Metadata version number of the group - */ - 'metadata_version'?: number | null; - /** - * Last modified time of the group in milliseconds. - */ - 'modification_time_in_millis'?: number | null; - /** - * The unique identifier of the object - */ - 'modifier_id'?: string | null; - /** - * Name of the group. + * Name of the webhook configuration. */ 'name': string; /** - * Orgs in which group exists. - */ - 'orgs'?: Array | null; - /** - * The unique identifier of the object - */ - 'owner_id'?: string | null; - /** - * Parent type of the group. - */ - 'parent_type'?: UserGroupResponseParentTypeEnum | null; - /** - * Privileges which are assigned to the group - */ - 'privileges'?: Array | null; - /** - * Groups who are part of the group - */ - 'sub_groups'?: Array | null; - /** - * Indicates whether the group is a system group. + * Description of the webhook configuration. */ - 'system_group'?: boolean | null; + 'description'?: string | null; + 'org'?: WebhookOrg; /** - * Tags associated with the group. + * The webhook endpoint URL. */ - 'tags'?: Array | null; + 'url': string; /** - * Type of the group. + * Additional URL parameters as key-value pairs. */ - 'type'?: UserGroupResponseTypeEnum | null; + 'url_params'?: any | null; /** - * Users who are part of the group. + * List of events this webhook subscribes to. */ - 'users'?: Array | null; + 'events': Array; + 'authentication'?: WebhookAuthentication; + 'signature_verification'?: WebhookSignatureVerification; /** - * Visibility of the group. The SHARABLE makes a group visible to other users and groups, and thus allows them to share objects. + * Creation time of the webhook configuration in milliseconds. */ - 'visibility': UserGroupResponseVisibilityEnum; + 'creation_time_in_millis': number; /** - * List of roles assgined to the user + * Last modified time of the webhook configuration in milliseconds. */ - 'roles'?: Array | null; + 'modification_time_in_millis': number; + 'created_by'?: WebhookUser; + 'last_modified_by'?: WebhookUser; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14830,9 +17404,7 @@ declare class UserGroupResponse { }[]; constructor(); } -type UserGroupResponseParentTypeEnum = "USER" | "GROUP"; -type UserGroupResponseTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP"; -type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; +type WebhookResponseEventsEnum = "LIVEBOARD_SCHEDULE"; /** * ThoughtSpot Public REST API @@ -14846,23 +17418,23 @@ type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE"; * Do not edit the class manually. */ -/** -* 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). -*/ -declare class UserParameterOptions { - 'objects'?: Array | null; +declare class WebhookDeleteResponse { /** - * Objects to apply the User_Runtime_Filters. Examples to set the `runtime_filters` : ```json { \"column_name\": \"Color\", \"operator\": \"EQ\", \"values\": [\"red\"], \"persist\": false } ``` + * Number of webhooks successfully deleted. */ - 'runtime_filters'?: Array | null; + 'deleted_count': number; /** - * Objects to apply the User_Runtime_Sorts. Examples to set the `runtime_sorts` : ```json { \"column_name\": \"Color\", \"order\": \"ASC\", \"persist\": false } ``` + * Number of webhooks that failed to delete. */ - 'runtime_sorts'?: Array | null; + 'failed_count': number; /** - * Objects to apply the Runtime_Parameters. Examples to set the `parameters` : ```json { \"name\": \"Color\", \"values\": [\"Blue\"], \"persist\": false } ``` + * List of successfully deleted webhooks. */ - 'parameters'?: Array | null; + 'deleted_webhooks': Array; + /** + * List of webhooks that failed to delete with error details. + */ + 'failed_webhooks': Array; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14890,15 +17462,23 @@ declare class UserParameterOptions { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ValidateMergeRequest { +declare class WebhookPagination { /** - * Name of the branch from which changes need to be picked for validation + * The starting record number from where the records are included. */ - 'source_branch_name': string; + 'record_offset': number; /** - * Name of the branch where files will be merged + * The number of records included in the response. */ - 'target_branch_name': string; + 'record_size': number; + /** + * Total number of webhook configurations available. + */ + 'total_count': number; + /** + * Indicates whether more records are available beyond the current response. + */ + 'has_more': boolean; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14926,8 +17506,13 @@ declare class ValidateMergeRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class ValidateTokenRequest { - 'token': string; + +declare class WebhookSearchResponse { + /** + * List of webhook configurations matching the search criteria. + */ + 'webhooks': Array; + 'pagination': WebhookPagination; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14955,27 +17540,23 @@ declare class ValidateTokenRequest { * https://openapi-generator.tech * Do not edit the class manually. */ -declare class VariableValue { +declare class WebhookSignatureVerificationInput { /** - * The value of the variable - */ - 'value'?: string | null; - /** - * The unique name of the org + * Signature verification method type. */ - 'org_identifier': string; + 'type': WebhookSignatureVerificationInputTypeEnum; /** - * Principal type + * HTTP header where the signature is sent. */ - 'principal_type'?: VariableValuePrincipalTypeEnum | null; + 'header': string; /** - * Unique ID or name of the principal + * Hash algorithm used for signature verification. */ - 'principal_identifier'?: string | null; + 'algorithm': WebhookSignatureVerificationInputAlgorithmEnum; /** - * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + * Shared secret used for HMAC signature generation. */ - 'priority'?: number | null; + 'secret': string; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -14991,7 +17572,8 @@ declare class VariableValue { }[]; constructor(); } -type VariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; +type WebhookSignatureVerificationInputTypeEnum = "HMAC_SHA256"; +type WebhookSignatureVerificationInputAlgorithmEnum = "SHA256"; /** * ThoughtSpot Public REST API @@ -15004,31 +17586,15 @@ type VariableValuePrincipalTypeEnum = "USER" | "USER_GROUP"; * https://openapi-generator.tech * Do not edit the class manually. */ - -/** -* Variable object -*/ -declare class Variable { - /** - * Unique identifier of the variable - */ - 'id': string; - /** - * Name of the variable - */ - 'name': string; - /** - * Type of the variable - */ - 'variable_type'?: VariableVariableTypeEnum | null; +declare class WebhookSortOptionsInput { /** - * If the variable is sensitive + * Name of the field to apply the sort on. */ - 'sensitive'?: boolean | null; + 'field_name'?: WebhookSortOptionsInputFieldNameEnum | null; /** - * Values of the variable + * Sort order: ASC (Ascending) or DESC (Descending). */ - 'values'?: Array | null; + 'order'?: WebhookSortOptionsInputOrderEnum | null; static readonly discriminator: string | undefined; static readonly attributeTypeMap: Array<{ name: string; @@ -15044,7 +17610,8 @@ declare class Variable { }[]; constructor(); } -type VariableVariableTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL"; +type WebhookSortOptionsInputFieldNameEnum = "CREATED" | "MODIFIED" | "NAME"; +type WebhookSortOptionsInputOrderEnum = "ASC" | "DESC"; /** * Defines the contract for a middleware intercepting requests before @@ -15242,45 +17809,129 @@ declare class RequiredError extends Error { * no description */ declare class AIApiRequestFactory extends BaseAPIRequestFactory { + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * 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 */ - createConversation(createConversationRequest: CreateConversationRequest, _options?: Configuration): Promise; + createConversation(createConversationRequest: CreateConversationRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.7.0.cl or later + * @param queryGetDecomposedQueryRequest + */ + queryGetDecomposedQuery(queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; + /** + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest + */ + sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest + */ + singleAnswer(singleAnswerRequest: SingleAnswerRequest, _options?: Configuration): Promise; +} +declare class AIApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createAgentConversation(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createConversation(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getDataSourceSuggestions + * @throws ApiException if the response code was not in [200, 299] + */ + getDataSourceSuggestions(response: ResponseContext): Promise; /** - * Version: 10.7.0.cl or later - * @param queryGetDecomposedQueryRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getNLInstructions + * @throws ApiException if the response code was not in [200, 299] */ - queryGetDecomposedQuery(queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest, _options?: Configuration): Promise; + getNLInstructions(response: ResponseContext): Promise; /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getRelevantQuestions + * @throws ApiException if the response code was not in [200, 299] */ - sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise; + getRelevantQuestions(response: ResponseContext): Promise; /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @throws ApiException if the response code was not in [200, 299] */ - singleAnswer(singleAnswerRequest: SingleAnswerRequest, _options?: Configuration): Promise; -} -declare class AIApiResponseProcessor { + queryGetDecomposedQuery(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConversation + * @params response Response returned by the server for a request to sendAgentMessage * @throws ApiException if the response code was not in [200, 299] */ - createConversation(response: ResponseContext): Promise; + sendAgentMessage(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @params response Response returned by the server for a request to sendAgentMessageStreaming * @throws ApiException if the response code was not in [200, 299] */ - queryGetDecomposedQuery(response: ResponseContext): Promise; + sendAgentMessageStreaming(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -15289,6 +17940,14 @@ declare class AIApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ sendMessage(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + setNLInstructions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -15312,7 +17971,7 @@ declare class AuthenticationApiRequestFactory extends BaseAPIRequestFactory { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; @@ -15431,7 +18090,7 @@ declare class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFa */ connectionConfigurationSearch(connectionConfigurationSearchRequest: ConnectionConfigurationSearchRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -15441,7 +18100,7 @@ declare class ConnectionConfigurationsApiRequestFactory extends BaseAPIRequestFa */ deleteConnectionConfiguration(deleteConnectionConfigurationRequest: DeleteConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -15522,7 +18181,7 @@ declare class ConnectionsApiRequestFactory extends BaseAPIRequestFactory { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -15757,12 +18416,12 @@ declare class DBTApiRequestFactory extends BaseAPIRequestFactory { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -15891,7 +18550,7 @@ declare class DataApiResponseProcessor { */ declare class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory { /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -15911,7 +18570,7 @@ declare class EmailCustomizationApiRequestFactory extends BaseAPIRequestFactory */ searchEmailCustomization(searchEmailCustomizationRequest: SearchEmailCustomizationRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -16076,7 +18735,7 @@ declare class MetadataApiRequestFactory extends BaseAPIRequestFactory { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; @@ -16121,7 +18780,7 @@ declare class MetadataApiRequestFactory extends BaseAPIRequestFactory { */ importMetadataTMLAsync(importMetadataTMLAsyncRequest: ImportMetadataTMLAsyncRequest, _options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -16131,7 +18790,7 @@ declare class MetadataApiRequestFactory extends BaseAPIRequestFactory { */ searchMetadata(searchMetadataRequest: SearchMetadataRequest, _options?: Configuration): Promise; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -16340,7 +18999,7 @@ declare class ReportsApiRequestFactory extends BaseAPIRequestFactory { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -16602,6 +19261,11 @@ declare class SecurityApiResponseProcessor { * no description */ declare class SystemApiRequestFactory extends BaseAPIRequestFactory { + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -16614,6 +19278,11 @@ declare class SystemApiRequestFactory extends BaseAPIRequestFactory { * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. */ getSystemOverrideInfo(_options?: Configuration): Promise; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -16621,6 +19290,14 @@ declare class SystemApiRequestFactory extends BaseAPIRequestFactory { updateSystemConfig(updateSystemConfigRequest: UpdateSystemConfigRequest, _options?: Configuration): Promise; } declare class SystemApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + configureCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -16645,6 +19322,14 @@ declare class SystemApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getSystemOverrideInfo(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + searchCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -16771,6 +19456,11 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { * @param commitBranchRequest */ commitBranch(commitBranchRequest: CommitBranchRequest, _options?: Configuration): Promise; + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -16782,10 +19472,15 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -16802,7 +19497,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ createConnection(createConnectionRequest: CreateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -16817,7 +19512,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ createCustomAction(createCustomActionRequest: CreateCustomActionRequest, _options?: Configuration): Promise; /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -16852,10 +19547,15 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ createUserGroup(createUserGroupRequest: CreateUserGroupRequest, _options?: Configuration): Promise; /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -16879,12 +19579,12 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -16975,10 +19675,15 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ deleteUserGroup(groupIdentifier: string, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -16995,7 +19700,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -17078,20 +19783,35 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest */ getFullAccessToken(getFullAccessTokenRequest: GetFullAccessTokenRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest */ getObjectAccessToken(getObjectAccessTokenRequest: GetObjectAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -17134,7 +19854,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ logout(_options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -17174,6 +19894,11 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { * @param searchCommitsRequest */ searchCommits(searchCommitsRequest: SearchCommitsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -17235,16 +19960,37 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ searchUsers(searchUsersRequest: SearchUsersRequest, _options?: Configuration): Promise; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. * @param sendMessageRequest */ sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -17261,7 +20007,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ unassignTag(assignTagRequest: AssignTagRequest, _options?: Configuration): Promise; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -17292,13 +20038,13 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ updateConnectionConfiguration(configurationIdentifier: string, updateConnectionConfigurationRequest: UpdateConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -17325,7 +20071,7 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ updateDbtConnection(dbtConnectionIdentifier: string, connectionName?: string, databaseName?: string, importType?: string, accessToken?: string, dbtUrl?: string, accountId?: string, projectId?: string, dbtEnvId?: string, projectName?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -17381,16 +20127,22 @@ declare class ThoughtSpotRestApiRequestFactory extends BaseAPIRequestFactory { */ updateUserGroup(groupIdentifier: string, updateUserGroupRequest: UpdateUserGroupRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -17447,6 +20199,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ commitBranch(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + configureCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17471,6 +20231,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ copyObject(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createAgentConversation(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17583,6 +20351,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ createVariable(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + createWebhookConfiguration(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17759,6 +20535,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ deleteVariable(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + deleteWebhookConfigurations(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17927,6 +20711,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getCustomAccessToken(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getDataSourceSuggestions + * @throws ApiException if the response code was not in [200, 299] + */ + getDataSourceSuggestions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17935,6 +20727,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getFullAccessToken(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + getNLInstructions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -17943,6 +20743,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ getObjectAccessToken(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getRelevantQuestions + * @throws ApiException if the response code was not in [200, 299] + */ + getRelevantQuestions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18079,6 +20887,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ searchCommits(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + searchCommunicationChannelPreferences(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18183,6 +20999,30 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ searchVariables(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + searchWebhookConfigurations(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessage + * @throws ApiException if the response code was not in [200, 299] + */ + sendAgentMessage(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendAgentMessageStreaming + * @throws ApiException if the response code was not in [200, 299] + */ + sendAgentMessageStreaming(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18191,6 +21031,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ sendMessage(response: ResponseContext): Promise>; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to setNLInstructions + * @throws ApiException if the response code was not in [200, 299] + */ + setNLInstructions(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18391,6 +21239,14 @@ declare class ThoughtSpotRestApiResponseProcessor { * @throws ApiException if the response code was not in [200, 299] */ updateVariableValues(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + updateWebhookConfiguration(response: ResponseContext): Promise; /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -18561,28 +21417,28 @@ declare class UsersApiResponseProcessor { */ declare class VariableApiRequestFactory extends BaseAPIRequestFactory { /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; @@ -18756,25 +21612,122 @@ declare class VersionControlApiResponseProcessor { validateMerge(response: ResponseContext): Promise>; } +/** + * no description + */ +declare class WebhooksApiRequestFactory extends BaseAPIRequestFactory { + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; +} +declare class WebhooksApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + createWebhookConfiguration(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + deleteWebhookConfigurations(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchWebhookConfigurations + * @throws ApiException if the response code was not in [200, 299] + */ + searchWebhookConfigurations(response: ResponseContext): Promise; + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateWebhookConfiguration + * @throws ApiException if the response code was not in [200, 299] + */ + updateWebhookConfiguration(response: ResponseContext): Promise; +} + declare class PromiseAIApi { private api; constructor(configuration: Configuration, requestFactory?: AIApiRequestFactory, responseProcessor?: AIApiResponseProcessor); + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * 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 */ createConversation(createConversationRequest: CreateConversationRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest */ queryGetDecomposedQuery(queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. * @param sendMessageRequest */ sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise>; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -18794,7 +21747,7 @@ declare class PromiseAuthenticationApi { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; @@ -18838,7 +21791,7 @@ declare class PromiseConnectionConfigurationsApi { */ connectionConfigurationSearch(connectionConfigurationSearchRequest: ConnectionConfigurationSearchRequest, _options?: Configuration): Promise>; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -18848,7 +21801,7 @@ declare class PromiseConnectionConfigurationsApi { */ deleteConnectionConfiguration(deleteConnectionConfigurationRequest: DeleteConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -18894,7 +21847,7 @@ declare class PromiseConnectionsApi { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -18984,12 +21937,12 @@ declare class PromiseDBTApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -19040,7 +21993,7 @@ declare class PromiseEmailCustomizationApi { private api; constructor(configuration: Configuration, requestFactory?: EmailCustomizationApiRequestFactory, responseProcessor?: EmailCustomizationApiResponseProcessor); /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -19060,7 +22013,7 @@ declare class PromiseEmailCustomizationApi { */ searchEmailCustomization(searchEmailCustomizationRequest: SearchEmailCustomizationRequest, _options?: Configuration): Promise>; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -19120,7 +22073,7 @@ declare class PromiseMetadataApi { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; @@ -19165,7 +22118,7 @@ declare class PromiseMetadataApi { */ importMetadataTMLAsync(importMetadataTMLAsyncRequest: ImportMetadataTMLAsyncRequest, _options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19175,7 +22128,7 @@ declare class PromiseMetadataApi { */ searchMetadata(searchMetadataRequest: SearchMetadataRequest, _options?: Configuration): Promise>; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19226,7 +22179,7 @@ declare class PromiseReportsApi { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -19332,6 +22285,11 @@ declare class PromiseSecurityApi { declare class PromiseSystemApi { private api; constructor(configuration: Configuration, requestFactory?: SystemApiRequestFactory, responseProcessor?: SystemApiResponseProcessor); + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -19344,6 +22302,11 @@ declare class PromiseSystemApi { * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. */ getSystemOverrideInfo(_options?: Configuration): Promise; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -19415,6 +22378,11 @@ declare class PromiseThoughtSpotRestApi { * @param commitBranchRequest */ commitBranch(commitBranchRequest: CommitBranchRequest, _options?: Configuration): Promise; + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -19426,10 +22394,15 @@ declare class PromiseThoughtSpotRestApi { */ convertWorksheetToModel(convertWorksheetToModelRequest: ConvertWorksheetToModelRequest, _options?: Configuration): Promise; /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise; /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -19446,7 +22419,7 @@ declare class PromiseThoughtSpotRestApi { */ createConnection(createConnectionRequest: CreateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise; @@ -19461,7 +22434,7 @@ declare class PromiseThoughtSpotRestApi { */ createCustomAction(createCustomActionRequest: CreateCustomActionRequest, _options?: Configuration): Promise; /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -19496,10 +22469,15 @@ declare class PromiseThoughtSpotRestApi { */ createUserGroup(createUserGroupRequest: CreateUserGroupRequest, _options?: Configuration): Promise; /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -19523,12 +22501,12 @@ declare class PromiseThoughtSpotRestApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; + dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ @@ -19619,10 +22597,15 @@ declare class PromiseThoughtSpotRestApi { */ deleteUserGroup(groupIdentifier: string, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -19639,7 +22622,7 @@ declare class PromiseThoughtSpotRestApi { */ exportAnswerReport(exportAnswerReportRequest: ExportAnswerReportRequest, _options?: Configuration): Promise; /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise; @@ -19722,20 +22705,35 @@ declare class PromiseThoughtSpotRestApi { */ getCurrentUserToken(_options?: Configuration): Promise; /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest */ getFullAccessToken(getFullAccessTokenRequest: GetFullAccessTokenRequest, _options?: Configuration): Promise; + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest */ getObjectAccessToken(getObjectAccessTokenRequest: GetObjectAccessTokenRequest, _options?: Configuration): Promise; + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -19778,7 +22776,7 @@ declare class PromiseThoughtSpotRestApi { */ logout(_options?: Configuration): Promise; /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19818,6 +22816,11 @@ declare class PromiseThoughtSpotRestApi { * @param searchCommitsRequest */ searchCommits(searchCommitsRequest: SearchCommitsRequest, _options?: Configuration): Promise>; + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise; /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -19879,16 +22882,37 @@ declare class PromiseThoughtSpotRestApi { */ searchUsers(searchUsersRequest: SearchUsersRequest, _options?: Configuration): Promise>; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise>; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise; + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise; /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. * @param sendMessageRequest */ sendMessage(conversationIdentifier: string, sendMessageRequest: SendMessageRequest, _options?: Configuration): Promise>; + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise; /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -19905,7 +22929,7 @@ declare class PromiseThoughtSpotRestApi { */ unassignTag(assignTagRequest: AssignTagRequest, _options?: Configuration): Promise; /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise; @@ -19936,13 +22960,13 @@ declare class PromiseThoughtSpotRestApi { */ updateConnection(updateConnectionRequest: UpdateConnectionRequest, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ updateConnectionConfiguration(configurationIdentifier: string, updateConnectionConfigurationRequest: UpdateConnectionConfigurationRequest, _options?: Configuration): Promise; /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -19969,7 +22993,7 @@ declare class PromiseThoughtSpotRestApi { */ updateDbtConnection(dbtConnectionIdentifier: string, connectionName?: string, databaseName?: string, importType?: string, accessToken?: string, dbtUrl?: string, accountId?: string, projectId?: string, dbtEnvId?: string, projectName?: string, fileContent?: HttpFile, _options?: Configuration): Promise; /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise; @@ -20025,16 +23049,22 @@ declare class PromiseThoughtSpotRestApi { */ updateUserGroup(groupIdentifier: string, updateUserGroupRequest: UpdateUserGroupRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -20111,28 +23141,28 @@ declare class PromiseVariableApi { private api; constructor(configuration: Configuration, requestFactory?: VariableApiRequestFactory, responseProcessor?: VariableApiResponseProcessor); /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier: string, _options?: Configuration): Promise; /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise>; /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ updateVariable(identifier: string, updateVariableRequest: UpdateVariableRequest, _options?: Configuration): Promise; /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise; @@ -20189,18 +23219,76 @@ declare class PromiseVersionControlApi { validateMerge(validateMergeRequest: ValidateMergeRequest, _options?: Configuration): Promise>; } +declare class PromiseWebhooksApi { + private api; + constructor(configuration: Configuration, requestFactory?: WebhooksApiRequestFactory, responseProcessor?: WebhooksApiResponseProcessor); + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise; + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise; + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise; +} + /** - * creates a bearer authentication configuration using params or a token provider - * @param thoughtSpotHost : the base url of the server - * @param paramOrTokenProvider either a GetFullAccessTokenRequest or a TokenProvider , - * Pass a GetFullAccessTokenRequest which contains the object body required to get a full access token , or - * function which returns a promise of a string which is the full access token + * Options for additional configuration settings + */ +interface ConfigurationOptions { + /** + * Additional headers to be included in every request + * @example + * ```typescript + * { + * additionalHeaders: { + * "Accept-Language": "en-US", + * } + * } + * ``` + */ + additionalHeaders?: Record; +} +/** + * creates a bearer authentication configuration using params or a token provider + * @param thoughtSpotHost thoughtSpotHost URL + * @param paramOrTokenProvider either a GetFullAccessTokenRequest or a TokenProvider , + * Pass a GetFullAccessTokenRequest which contains the object body required to get a full access token , or + * function which returns a promise of a string which is the full access token + * @param options - Optional configuration for custom headers and other settings + * @returns Configuration object ready for authenticated API calls + * @example + * ```typescript + * const configWithTokenProvider = createBearerAuthenticationConfig( + * "CLUSTER_SERVER_URL", + * YOUR_TOKEN_PROVIDER, + * { + * additionalHeaders: { + * "Accept-Language": "en-US", + * } + * } + * ); */ -declare const createBearerAuthenticationConfig: (thoughtSpotHost: string, paramOrTokenProvider: GetFullAccessTokenRequest | (() => Promise)) => Configuration; +declare const createBearerAuthenticationConfig: (thoughtSpotHost: string, paramOrTokenProvider: GetFullAccessTokenRequest | (() => Promise), options?: ConfigurationOptions) => Configuration; /** * creates a basic configuration using params which does not require authentication * @param thoughtSpotHost : the base url of the server + * @param options - Optional configuration for additional headers and other settings + * @returns Basic client configuration for unauthenticated API calls */ -declare const createBasicConfig: (thoughtSpotHost: string) => Configuration; +declare const createBasicConfig: (thoughtSpotHost: string, options?: ConfigurationOptions) => Configuration; -export { PromiseAIApi as AIApi, APIKey, APIKeyInput, AccessToken, ActionConfig, ActionConfigInput, ActionConfigInputCreate, ActionConfigInputCreatePositionEnum, ActionConfigInputPositionEnum, ActionDetails, ActionDetailsInput, ActionDetailsInputCreate, ActivateUserRequest, AnswerContent, AnswerDataResponse, ApiException, ApiKeyConfiguration, AssignChangeAuthorRequest, AssignTagRequest, AssociateMetadataInput, AssociateMetadataInputCreate, AssociateMetadataInputCreateTypeEnum, AssociateMetadataInputTypeEnum, AuthMethods, AuthMethodsConfiguration, Authentication, PromiseAuthenticationApi as AuthenticationApi, AuthenticationInput, Author, AuthorMetadataTypeInput, AuthorMetadataTypeInputTypeEnum, AuthorType, BaseServerConfiguration, BasicAuth, BasicAuthInput, BearerAuthAuthentication, CALLBACK, CALLBACKInput, CALLBACKInputMandatory, CalendarResponse, ChangeUserPasswordRequest, Column, ColumnSecurityRule, ColumnSecurityRuleColumn, ColumnSecurityRuleGroup, ColumnSecurityRuleGroupOperation, ColumnSecurityRuleGroupOperationOperationEnum, ColumnSecurityRuleResponse, ColumnSecurityRuleSourceTable, ColumnSecurityRuleTableInput, ColumnSecurityRuleUpdate, CommitBranchRequest, CommitFileType, CommitHistoryResponse, CommitResponse, CommiterType, Configuration, ConnectionConfigurationResponse, ConnectionConfigurationResponseDataWarehouseTypeEnum, ConnectionConfigurationResponsePolicyProcessesEnum, ConnectionConfigurationResponsePolicyTypeEnum, ConnectionConfigurationSearchRequest, ConnectionConfigurationSearchRequestPolicyTypeEnum, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, ConnectionInput, PromiseConnectionsApi as ConnectionsApi, Conversation, ConvertWorksheetToModelRequest, CopyObjectRequest, CopyObjectRequestTypeEnum, CreateCalendarRequest, CreateCalendarRequestCalendarTypeEnum, CreateCalendarRequestCreationMethodEnum, CreateCalendarRequestMonthOffsetEnum, CreateCalendarRequestStartDayOfWeekEnum, CreateCalendarRequestTableReference, CreateConfigRequest, CreateConnectionConfigurationRequest, CreateConnectionConfigurationRequestAuthenticationTypeEnum, CreateConnectionConfigurationRequestPolicyProcessesEnum, CreateConnectionConfigurationRequestPolicyTypeEnum, CreateConnectionRequest, CreateConnectionRequestDataWarehouseTypeEnum, CreateConnectionResponse, CreateConnectionResponseDataWarehouseTypeEnum, CreateConversationRequest, CreateCustomActionRequest, CreateCustomActionRequestActionDetails, CreateCustomActionRequestDefaultActionConfig, CreateEmailCustomizationRequest, CreateEmailCustomizationRequestTemplateProperties, CreateEmailCustomizationResponse, CreateOrgRequest, CreateRoleRequest, CreateRoleRequestPrivilegesEnum, CreateScheduleRequest, CreateScheduleRequestFileFormatEnum, CreateScheduleRequestFrequency, CreateScheduleRequestLiveboardOptions, CreateScheduleRequestMetadataTypeEnum, CreateScheduleRequestPdfOptions, CreateScheduleRequestPdfOptionsPageSizeEnum, CreateScheduleRequestRecipientDetails, CreateScheduleRequestTimeZoneEnum, CreateTagRequest, CreateUserGroupRequest, CreateUserGroupRequestPrivilegesEnum, CreateUserGroupRequestTypeEnum, CreateUserGroupRequestVisibilityEnum, CreateUserRequest, CreateUserRequestAccountStatusEnum, CreateUserRequestAccountTypeEnum, CreateUserRequestPreferredLocaleEnum, CreateUserRequestVisibilityEnum, CreateVariableRequest, CreateVariableRequestTypeEnum, CronExpression, CronExpressionInput, PromiseCustomActionApi as CustomActionApi, CustomActionMetadataTypeInput, CustomActionMetadataTypeInputTypeEnum, PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, DataWarehouseObjectInput, DataWarehouseObjects, Database, DbtSearchResponse, DeactivateUserRequest, DefaultActionConfig, DefaultActionConfigInput, DefaultActionConfigInputCreate, DefaultActionConfigSearchInput, DeleteConfigRequest, DeleteConnectionConfigurationRequest, DeleteConnectionRequest, DeleteMetadataRequest, DeleteMetadataTypeInput, DeleteMetadataTypeInputTypeEnum, DeleteOrgEmailCustomizationRequest, DeployCommitRequest, DeployCommitRequestDeployPolicyEnum, DeployCommitRequestDeployTypeEnum, DeployResponse, PromiseEmailCustomizationApi as EmailCustomizationApi, ErrorResponse, EurekaDecomposeQueryResponse, EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery, ExcludeMetadataListItemInput, ExcludeMetadataListItemInputTypeEnum, ExportAnswerReportRequest, ExportAnswerReportRequestFileFormatEnum, ExportAnswerReportRequestRegionalSettings, ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum, ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsUserLocaleEnum, ExportLiveboardReportRequest, ExportLiveboardReportRequestFileFormatEnum, ExportLiveboardReportRequestPdfOptions, ExportLiveboardReportRequestPdfOptionsPageOrientationEnum, ExportLiveboardReportRequestPngOptions, ExportMetadataTMLBatchedRequest, ExportMetadataTMLBatchedRequestEdocFormatEnum, ExportMetadataTMLBatchedRequestMetadataTypeEnum, ExportMetadataTMLRequest, ExportMetadataTMLRequestEdocFormatEnum, ExportMetadataTMLRequestExportOptions, ExportMetadataTMLRequestExportSchemaVersionEnum, ExportMetadataTypeInput, ExportMetadataTypeInputTypeEnum, ExportOptions, ExternalTableInput, FavoriteMetadataInput, FavoriteMetadataInputTypeEnum, FavoriteMetadataItem, FavoriteMetadataItemTypeEnum, FavoriteObjectOptionsInput, FetchAnswerDataRequest, FetchAnswerDataRequestDataFormatEnum, FetchAnswerSqlQueryRequest, FetchAsyncImportTaskStatusRequest, FetchAsyncImportTaskStatusRequestTaskStatusEnum, FetchColumnSecurityRulesRequest, FetchConnectionDiffStatusResponse, FetchLiveboardDataRequest, FetchLiveboardDataRequestDataFormatEnum, FetchLiveboardSqlQueryRequest, FetchLogsRequest, FetchLogsRequestLogTypeEnum, FetchPermissionsOfPrincipalsRequest, FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum, FetchPermissionsOnMetadataRequest, FilterRules, FilterRulesOperatorEnum, ForceLogoutUsersRequest, Frequency, FrequencyInput, GenerateCSVRequest, GenerateCSVRequestCalendarTypeEnum, GenerateCSVRequestMonthOffsetEnum, GenerateCSVRequestStartDayOfWeekEnum, GenericInfo, GetAsyncImportStatusResponse, GetCustomAccessTokenRequest, GetCustomAccessTokenRequestPersistOptionEnum, GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters, GetObjectAccessTokenRequest, GetTokenResponse, GroupObject, PromiseGroupsApi as GroupsApi, GroupsImportListInput, GroupsImportListInputPrivilegesEnum, GroupsImportListInputTypeEnum, GroupsImportListInputVisibilityEnum, HeaderAttributeInput, HeaderUpdateInput, HeaderUpdateInputTypeEnum, HttpBasicConfiguration, HttpBearerConfiguration, HttpException, HttpFile, HttpLibrary, HttpMethod, ImportEPackAsyncTaskStatus, ImportEPackAsyncTaskStatusImportPolicyEnum, ImportEPackAsyncTaskStatusTaskStatusEnum, ImportMetadataTMLAsyncRequest, ImportMetadataTMLAsyncRequestImportPolicyEnum, ImportMetadataTMLRequest, ImportMetadataTMLRequestImportPolicyEnum, ImportUser, ImportUserAccountStatusEnum, ImportUserAccountTypeEnum, ImportUserGroupsRequest, ImportUserGroupsResponse, ImportUserType, ImportUserVisibilityEnum, ImportUsersRequest, ImportUsersResponse, InputEurekaNLSRequest, InputVariableValue, InputVariableValuePrincipalTypeEnum, IsomorphicFetchHttpLibrary, JWTMetadataObject, JWTMetadataObjectTypeEnum, JWTParameter, JWTUserOptions, JWTUserOptionsFull, LiveboardContent, LiveboardDataResponse, LiveboardOptions, LiveboardOptionsInput, PromiseLogApi as LogApi, LogResponse, LoginRequest, PromiseMetadataApi as MetadataApi, MetadataAssociationItem, MetadataInput, MetadataInputTypeEnum, MetadataListItemInput, MetadataListItemInputSubtypesEnum, MetadataListItemInputTypeEnum, MetadataObject, MetadataObjectTypeEnum, MetadataResponse, MetadataResponseTypeEnum, MetadataSearchResponse, MetadataSearchResponseMetadataTypeEnum, MetadataSearchSortOptions, MetadataSearchSortOptionsFieldNameEnum, MetadataSearchSortOptionsOrderEnum, PromiseMiddleware as Middleware, ModelTableList, OAuth2Configuration, ObjectIDAndName, Org, OrgInfo, OrgResponse, OrgResponseStatusEnum, OrgResponseVisibilityEnum, OrgType, PromiseOrgsApi as OrgsApi, ParameterValues, ParameterizeMetadataRequest, ParameterizeMetadataRequestFieldTypeEnum, ParameterizeMetadataRequestMetadataTypeEnum, ParametersListItem, ParametersListItemInput, PdfOptions, PdfOptionsInput, PdfOptionsInputPageOrientationEnum, PdfOptionsPageSizeEnum, PermissionInput, PermissionInputShareModeEnum, PermissionOfMetadataResponse, PermissionOfPrincipalsResponse, PermissionsMetadataTypeInput, PermissionsMetadataTypeInputTypeEnum, PngOptionsInput, PrincipalsInput, PrincipalsInputTypeEnum, PrincipalsListItem, PrincipalsListItemInput, PromiseHttpLibrary, PublishMetadataListItem, PublishMetadataListItemTypeEnum, PublishMetadataRequest, QueryGetDecomposedQueryRequest, QueryGetDecomposedQueryRequestNlsRequest, RecipientDetails, RecipientDetailsInput, RegionalSettingsInput, RegionalSettingsInputCurrencyFormatEnum, RegionalSettingsInputDateFormatLocaleEnum, RegionalSettingsInputNumberFormatLocaleEnum, RegionalSettingsInputUserLocaleEnum, RepoConfigObject, PromiseReportsApi as ReportsApi, RequestBody, RequestContext, RequiredError, ResetUserPasswordRequest, ResponseActivationURL, ResponseBody, ResponseContext, ResponseCopyObject, ResponseCustomAction, ResponseFailedEntities, ResponseFailedEntity, ResponseIncompleteEntities, ResponseIncompleteEntity, ResponseMessage, ResponseMessageMessageTypeEnum, ResponseMessageVisualizationTypeEnum, ResponsePostUpgradeFailedEntities, ResponsePostUpgradeFailedEntity, ResponseSchedule, ResponseScheduleRun, ResponseSuccessfulEntities, ResponseSuccessfulEntity, ResponseWorksheetToModelConversion, RevertCommitRequest, RevertCommitRequestRevertPolicyEnum, RevertResponse, RevertedMetadata, RevokeTokenRequest, RiseGQLArgWrapper, RiseSetter, Role, RoleResponse, RoleResponsePermissionEnum, RoleResponsePrivilegesEnum, PromiseRolesApi as RolesApi, RuntimeFilter, RuntimeFilters, RuntimeFiltersOperatorEnum, RuntimeParamOverride, RuntimeParameters, RuntimeSort, RuntimeSorts, RuntimeSortsOrderEnum, ScheduleHistoryRunsOptionsInput, PromiseSchedulesApi as SchedulesApi, SchedulesPdfOptionsInput, SchedulesPdfOptionsInputPageSizeEnum, SchemaObject, Scope, SearchCalendarsRequest, SearchCalendarsRequestSortOptions, SearchCalendarsRequestSortOptionsFieldNameEnum, SearchCalendarsRequestSortOptionsOrderEnum, SearchCommitsRequest, SearchCommitsRequestMetadataTypeEnum, SearchConfigRequest, SearchConnectionRequest, SearchConnectionRequestAuthenticationTypeEnum, SearchConnectionRequestDataWarehouseObjectTypeEnum, SearchConnectionRequestDataWarehouseTypesEnum, SearchConnectionRequestSortOptions, SearchConnectionRequestSortOptionsFieldNameEnum, SearchConnectionRequestSortOptionsOrderEnum, SearchConnectionResponse, SearchConnectionResponseDataWarehouseTypeEnum, SearchCustomActionsRequest, SearchCustomActionsRequestDefaultActionConfig, SearchCustomActionsRequestTypeEnum, SearchDataRequest, SearchDataRequestDataFormatEnum, SearchDataResponse, SearchEmailCustomizationRequest, SearchMetadataRequest, SearchMetadataRequestDependentObjectVersionEnum, SearchMetadataRequestFavoriteObjectOptions, SearchMetadataRequestLiveboardResponseVersionEnum, SearchMetadataRequestSortOptions, SearchMetadataRequestSortOptionsFieldNameEnum, SearchMetadataRequestSortOptionsOrderEnum, SearchOrgsRequest, SearchOrgsRequestStatusEnum, SearchOrgsRequestVisibilityEnum, SearchRoleResponse, SearchRoleResponsePermissionEnum, SearchRoleResponsePrivilegesEnum, SearchRolesRequest, SearchRolesRequestPermissionsEnum, SearchRolesRequestPrivilegesEnum, SearchSchedulesRequest, SearchSchedulesRequestHistoryRunsOptions, SearchSchedulesRequestSortOptions, SearchTagsRequest, SearchUserGroupsRequest, SearchUserGroupsRequestPrivilegesEnum, SearchUserGroupsRequestSortOptions, SearchUserGroupsRequestSortOptionsFieldNameEnum, SearchUserGroupsRequestSortOptionsOrderEnum, SearchUserGroupsRequestTypeEnum, SearchUserGroupsRequestVisibilityEnum, SearchUsersRequest, SearchUsersRequestAccountStatusEnum, SearchUsersRequestAccountTypeEnum, SearchUsersRequestPrivilegesEnum, SearchUsersRequestSortOptions, SearchUsersRequestSortOptionsFieldNameEnum, SearchUsersRequestSortOptionsOrderEnum, SearchUsersRequestVisibilityEnum, SearchVariablesRequest, SearchVariablesRequestOutputFormatEnum, PromiseSecurityApi as SecurityApi, SecurityAuthentication, SelfDecodingBody, SendMessageRequest, ServerConfiguration, ShareMetadataRequest, ShareMetadataRequestMetadataTypeEnum, ShareMetadataTypeInput, ShareMetadataTypeInputTypeEnum, SharePermissionsInput, SharePermissionsInputShareModeEnum, SingleAnswerRequest, SortOption, SortOptionFieldNameEnum, SortOptionInput, SortOptionInputFieldNameEnum, SortOptionInputOrderEnum, SortOptionOrderEnum, SortOptions, SortOptionsFieldNameEnum, SortOptionsOrderEnum, SortingOptions, SqlQuery, SqlQueryResponse, SqlQueryResponseMetadataTypeEnum, PromiseSystemApi as SystemApi, SystemConfig, SystemInfo, SystemOverrideInfo, Table, Tag, TagMetadataTypeInput, TagMetadataTypeInputTypeEnum, PromiseTagsApi as TagsApi, TemplatePropertiesInputCreate, PromiseThoughtSpotRestApi as ThoughtSpotRestApi, Token, TokenAccessScopeObject, TokenAccessScopeObjectTypeEnum, TokenProvider, TokenValidationResponse, URL, URLInput, URLInputMandatory, UnparameterizeMetadataRequest, UnparameterizeMetadataRequestFieldTypeEnum, UnparameterizeMetadataRequestMetadataTypeEnum, UnpublishMetadataRequest, UpdateCalendarRequest, UpdateCalendarRequestCalendarTypeEnum, UpdateCalendarRequestMonthOffsetEnum, UpdateCalendarRequestStartDayOfWeekEnum, UpdateCalendarRequestTableReference, UpdateCalendarRequestUpdateMethodEnum, UpdateColumnSecurityRulesRequest, UpdateConfigRequest, UpdateConnectionConfigurationRequest, UpdateConnectionConfigurationRequestAuthenticationTypeEnum, UpdateConnectionConfigurationRequestPolicyProcessesEnum, UpdateConnectionConfigurationRequestPolicyTypeEnum, UpdateConnectionRequest, UpdateConnectionV2Request, UpdateCustomActionRequest, UpdateCustomActionRequestActionDetails, UpdateCustomActionRequestDefaultActionConfig, UpdateCustomActionRequestOperationEnum, UpdateEmailCustomizationRequest, UpdateMetadataHeaderRequest, UpdateMetadataObjIdRequest, UpdateObjIdInput, UpdateObjIdInputTypeEnum, UpdateOrgRequest, UpdateOrgRequestOperationEnum, UpdateRoleRequest, UpdateRoleRequestPrivilegesEnum, UpdateScheduleRequest, UpdateScheduleRequestFileFormatEnum, UpdateScheduleRequestFrequency, UpdateScheduleRequestLiveboardOptions, UpdateScheduleRequestMetadataTypeEnum, UpdateScheduleRequestPdfOptions, UpdateScheduleRequestPdfOptionsPageSizeEnum, UpdateScheduleRequestRecipientDetails, UpdateScheduleRequestStatusEnum, UpdateScheduleRequestTimeZoneEnum, UpdateSystemConfigRequest, UpdateTagRequest, UpdateUserGroupRequest, UpdateUserGroupRequestOperationEnum, UpdateUserGroupRequestPrivilegesEnum, UpdateUserGroupRequestTypeEnum, UpdateUserGroupRequestVisibilityEnum, UpdateUserRequest, UpdateUserRequestAccountStatusEnum, UpdateUserRequestAccountTypeEnum, UpdateUserRequestOperationEnum, UpdateUserRequestPreferredLocaleEnum, UpdateUserRequestVisibilityEnum, UpdateVariableRequest, UpdateVariableRequestOperationEnum, UpdateVariableValuesRequest, UpdateVariableValuesRequestOperationEnum, User, UserAccountStatusEnum, UserAccountTypeEnum, UserGroup, UserGroupResponse, UserGroupResponseParentTypeEnum, UserGroupResponseTypeEnum, UserGroupResponseVisibilityEnum, UserInfo, UserObject, UserObjectTypeEnum, UserParameterOptions, UserParentTypeEnum, UserPrincipal, UserVisibilityEnum, PromiseUsersApi as UsersApi, ValidateMergeRequest, ValidateTokenRequest, Variable, PromiseVariableApi as VariableApi, VariableDetailInput, VariableDetailInputTypeEnum, VariableValue, VariableValueInput, VariableValuePrincipalTypeEnum, VariableVariableTypeEnum, PromiseVersionControlApi as VersionControlApi, configureAuthMethods, createBasicConfig, createBearerAuthenticationConfig, createConfiguration, server1, servers, wrapHttpLibrary }; +export { PromiseAIApi as AIApi, AIContext, APIKey, APIKeyInput, AccessToken, ActionConfig, ActionConfigInput, ActionConfigInputCreate, ActionConfigInputCreatePositionEnum, ActionConfigInputPositionEnum, ActionDetails, ActionDetailsInput, ActionDetailsInputCreate, ActivateUserRequest, AgentConversation, AnswerContent, AnswerContextInput, AnswerDataResponse, ApiException, ApiKeyConfiguration, AssignChangeAuthorRequest, AssignTagRequest, AssociateMetadataInput, AssociateMetadataInputCreate, AssociateMetadataInputCreateTypeEnum, AssociateMetadataInputTypeEnum, AuthMethods, AuthMethodsConfiguration, Authentication, PromiseAuthenticationApi as AuthenticationApi, AuthenticationInput, Author, AuthorMetadataTypeInput, AuthorMetadataTypeInputTypeEnum, AuthorType, BaseServerConfiguration, BasicAuth, BasicAuthInput, BearerAuthAuthentication, CALLBACK, CALLBACKInput, CALLBACKInputMandatory, CalendarResponse, ChangeUserPasswordRequest, Column, ColumnSecurityRule, ColumnSecurityRuleColumn, ColumnSecurityRuleGroup, ColumnSecurityRuleGroupOperation, ColumnSecurityRuleGroupOperationOperationEnum, ColumnSecurityRuleResponse, ColumnSecurityRuleSourceTable, ColumnSecurityRuleTableInput, ColumnSecurityRuleUpdate, CommitBranchRequest, CommitFileType, CommitHistoryResponse, CommitResponse, CommiterType, CommunicationChannelPreferencesResponse, Configuration, ConfigureCommunicationChannelPreferencesRequest, ConnectionConfigurationResponse, ConnectionConfigurationResponseDataWarehouseTypeEnum, ConnectionConfigurationResponsePolicyProcessesEnum, ConnectionConfigurationResponsePolicyTypeEnum, ConnectionConfigurationSearchRequest, ConnectionConfigurationSearchRequestPolicyTypeEnum, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, ConnectionInput, PromiseConnectionsApi as ConnectionsApi, ContextPayloadV2Input, ContextPayloadV2InputTypeEnum, Conversation, ConversationSettingsInput, ConvertWorksheetToModelRequest, CopyObjectRequest, CopyObjectRequestTypeEnum, CreateAgentConversationRequest, CreateAgentConversationRequestConversationSettings, CreateAgentConversationRequestMetadataContext, CreateAgentConversationRequestMetadataContextTypeEnum, CreateCalendarRequest, CreateCalendarRequestCalendarTypeEnum, CreateCalendarRequestCreationMethodEnum, CreateCalendarRequestMonthOffsetEnum, CreateCalendarRequestStartDayOfWeekEnum, CreateCalendarRequestTableReference, CreateConfigRequest, CreateConnectionConfigurationRequest, CreateConnectionConfigurationRequestAuthenticationTypeEnum, CreateConnectionConfigurationRequestPolicyProcessesEnum, CreateConnectionConfigurationRequestPolicyTypeEnum, CreateConnectionRequest, CreateConnectionRequestDataWarehouseTypeEnum, CreateConnectionResponse, CreateConnectionResponseDataWarehouseTypeEnum, CreateConversationRequest, CreateCustomActionRequest, CreateCustomActionRequestActionDetails, CreateCustomActionRequestDefaultActionConfig, CreateEmailCustomizationRequest, CreateEmailCustomizationRequestTemplateProperties, CreateEmailCustomizationResponse, CreateOrgRequest, CreateRoleRequest, CreateRoleRequestPrivilegesEnum, CreateScheduleRequest, CreateScheduleRequestFileFormatEnum, CreateScheduleRequestFrequency, CreateScheduleRequestLiveboardOptions, CreateScheduleRequestMetadataTypeEnum, CreateScheduleRequestPdfOptions, CreateScheduleRequestPdfOptionsPageSizeEnum, CreateScheduleRequestRecipientDetails, CreateScheduleRequestTimeZoneEnum, CreateTagRequest, CreateUserGroupRequest, CreateUserGroupRequestPrivilegesEnum, CreateUserGroupRequestTypeEnum, CreateUserGroupRequestVisibilityEnum, CreateUserRequest, CreateUserRequestAccountStatusEnum, CreateUserRequestAccountTypeEnum, CreateUserRequestPreferredLocaleEnum, CreateUserRequestVisibilityEnum, CreateVariableRequest, CreateVariableRequestDataTypeEnum, CreateVariableRequestTypeEnum, CreateWebhookConfigurationRequest, CreateWebhookConfigurationRequestAuthentication, CreateWebhookConfigurationRequestEventsEnum, CreateWebhookConfigurationRequestSignatureVerification, CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum, CreateWebhookConfigurationRequestSignatureVerificationTypeEnum, CronExpression, CronExpressionInput, PromiseCustomActionApi as CustomActionApi, CustomActionMetadataTypeInput, CustomActionMetadataTypeInputTypeEnum, PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, DataSource, DataSourceContextInput, DataWarehouseObjectInput, DataWarehouseObjects, Database, DbtSearchResponse, DeactivateUserRequest, DefaultActionConfig, DefaultActionConfigInput, DefaultActionConfigInputCreate, DefaultActionConfigSearchInput, DeleteConfigRequest, DeleteConnectionConfigurationRequest, DeleteConnectionRequest, DeleteMetadataRequest, DeleteMetadataTypeInput, DeleteMetadataTypeInputTypeEnum, DeleteOrgEmailCustomizationRequest, DeleteWebhookConfigurationsRequest, DeployCommitRequest, DeployCommitRequestDeployPolicyEnum, DeployCommitRequestDeployTypeEnum, DeployResponse, PromiseEmailCustomizationApi as EmailCustomizationApi, EntityHeader, ErrorResponse, EurekaDataSourceSuggestionResponse, EurekaDecomposeQueryResponse, EurekaGetNLInstructionsResponse, EurekaGetRelevantQuestionsResponse, EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery, EurekaRelevantQuestion, EurekaSetNLInstructionsResponse, EventChannelConfig, EventChannelConfigChannelsEnum, EventChannelConfigEventTypeEnum, EventChannelConfigInput, EventChannelConfigInputChannelsEnum, EventChannelConfigInputEventTypeEnum, ExcludeMetadataListItemInput, ExcludeMetadataListItemInputTypeEnum, ExportAnswerReportRequest, ExportAnswerReportRequestFileFormatEnum, ExportAnswerReportRequestRegionalSettings, ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum, ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum, ExportAnswerReportRequestRegionalSettingsUserLocaleEnum, ExportLiveboardReportRequest, ExportLiveboardReportRequestFileFormatEnum, ExportLiveboardReportRequestPdfOptions, ExportLiveboardReportRequestPdfOptionsPageOrientationEnum, ExportLiveboardReportRequestPngOptions, ExportMetadataTMLBatchedRequest, ExportMetadataTMLBatchedRequestEdocFormatEnum, ExportMetadataTMLBatchedRequestMetadataTypeEnum, ExportMetadataTMLRequest, ExportMetadataTMLRequestEdocFormatEnum, ExportMetadataTMLRequestExportOptions, ExportMetadataTMLRequestExportSchemaVersionEnum, ExportMetadataTypeInput, ExportMetadataTypeInputTypeEnum, ExportOptions, ExternalTableInput, FavoriteMetadataInput, FavoriteMetadataInputTypeEnum, FavoriteMetadataItem, FavoriteMetadataItemTypeEnum, FavoriteObjectOptionsInput, FetchAnswerDataRequest, FetchAnswerDataRequestDataFormatEnum, FetchAnswerSqlQueryRequest, FetchAsyncImportTaskStatusRequest, FetchAsyncImportTaskStatusRequestTaskStatusEnum, FetchColumnSecurityRulesRequest, FetchConnectionDiffStatusResponse, FetchLiveboardDataRequest, FetchLiveboardDataRequestDataFormatEnum, FetchLiveboardSqlQueryRequest, FetchLogsRequest, FetchLogsRequestLogTypeEnum, FetchPermissionsOfPrincipalsRequest, FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum, FetchPermissionsOnMetadataRequest, FilterRules, FilterRulesOperatorEnum, ForceLogoutUsersRequest, Frequency, FrequencyInput, GenerateCSVRequest, GenerateCSVRequestCalendarTypeEnum, GenerateCSVRequestMonthOffsetEnum, GenerateCSVRequestStartDayOfWeekEnum, GenericInfo, GetAsyncImportStatusResponse, GetCustomAccessTokenRequest, GetCustomAccessTokenRequestPersistOptionEnum, GetDataSourceSuggestionsRequest, GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters, GetNLInstructionsRequest, GetObjectAccessTokenRequest, GetRelevantQuestionsRequest, GetRelevantQuestionsRequestAiContext, GetRelevantQuestionsRequestMetadataContext, GetTokenResponse, GroupObject, PromiseGroupsApi as GroupsApi, GroupsImportListInput, GroupsImportListInputPrivilegesEnum, GroupsImportListInputTypeEnum, GroupsImportListInputVisibilityEnum, HeaderAttributeInput, HeaderUpdateInput, HeaderUpdateInputTypeEnum, HttpBasicConfiguration, HttpBearerConfiguration, HttpException, HttpFile, HttpLibrary, HttpMethod, ImportEPackAsyncTaskStatus, ImportEPackAsyncTaskStatusImportPolicyEnum, ImportEPackAsyncTaskStatusTaskStatusEnum, ImportMetadataTMLAsyncRequest, ImportMetadataTMLAsyncRequestImportPolicyEnum, ImportMetadataTMLRequest, ImportMetadataTMLRequestImportPolicyEnum, ImportUser, ImportUserAccountStatusEnum, ImportUserAccountTypeEnum, ImportUserGroupsRequest, ImportUserGroupsResponse, ImportUserType, ImportUserVisibilityEnum, ImportUsersRequest, ImportUsersResponse, InputEurekaNLSRequest, IsomorphicFetchHttpLibrary, JWTMetadataObject, JWTMetadataObjectTypeEnum, JWTParameter, JWTUserOptions, JWTUserOptionsFull, LBContextInput, LiveboardContent, LiveboardDataResponse, LiveboardOptions, LiveboardOptionsInput, PromiseLogApi as LogApi, LogResponse, LoginRequest, PromiseMetadataApi as MetadataApi, MetadataAssociationItem, MetadataContext, MetadataInput, MetadataInputTypeEnum, MetadataListItemInput, MetadataListItemInputSubtypesEnum, MetadataListItemInputTypeEnum, MetadataObject, MetadataObjectTypeEnum, MetadataResponse, MetadataResponseTypeEnum, MetadataSearchResponse, MetadataSearchResponseMetadataTypeEnum, MetadataSearchSortOptions, MetadataSearchSortOptionsFieldNameEnum, MetadataSearchSortOptionsOrderEnum, PromiseMiddleware as Middleware, ModelTableList, NLInstructionsInfo, NLInstructionsInfoInput, NLInstructionsInfoInputScopeEnum, NLInstructionsInfoScopeEnum, OAuth2Configuration, ObjectIDAndName, Org, OrgChannelConfigInput, OrgChannelConfigInputOperationEnum, OrgChannelConfigInputResetEventsEnum, OrgChannelConfigResponse, OrgDetails, OrgInfo, OrgPreferenceSearchCriteriaInput, OrgPreferenceSearchCriteriaInputEventTypesEnum, OrgResponse, OrgResponseStatusEnum, OrgResponseVisibilityEnum, OrgType, PromiseOrgsApi as OrgsApi, ParameterValues, ParameterizeMetadataRequest, ParameterizeMetadataRequestFieldTypeEnum, ParameterizeMetadataRequestMetadataTypeEnum, ParametersListItem, ParametersListItemInput, PdfOptions, PdfOptionsInput, PdfOptionsInputPageOrientationEnum, PdfOptionsPageSizeEnum, PermissionInput, PermissionInputShareModeEnum, PermissionOfMetadataResponse, PermissionOfPrincipalsResponse, PermissionsMetadataTypeInput, PermissionsMetadataTypeInputTypeEnum, PngOptionsInput, PrincipalsInput, PrincipalsInputTypeEnum, PrincipalsListItem, PrincipalsListItemInput, PromiseHttpLibrary, PublishMetadataListItem, PublishMetadataListItemTypeEnum, PublishMetadataRequest, QueryGetDecomposedQueryRequest, QueryGetDecomposedQueryRequestNlsRequest, RecipientDetails, RecipientDetailsInput, RegionalSettingsInput, RegionalSettingsInputCurrencyFormatEnum, RegionalSettingsInputDateFormatLocaleEnum, RegionalSettingsInputNumberFormatLocaleEnum, RegionalSettingsInputUserLocaleEnum, RepoConfigObject, PromiseReportsApi as ReportsApi, RequestBody, RequestContext, RequiredError, ResetUserPasswordRequest, ResponseActivationURL, ResponseBody, ResponseContext, ResponseCopyObject, ResponseCustomAction, ResponseFailedEntities, ResponseFailedEntity, ResponseIncompleteEntities, ResponseIncompleteEntity, ResponseMessage, ResponseMessageMessageTypeEnum, ResponseMessageVisualizationTypeEnum, ResponsePostUpgradeFailedEntities, ResponsePostUpgradeFailedEntity, ResponseSchedule, ResponseScheduleRun, ResponseSuccessfulEntities, ResponseSuccessfulEntity, ResponseWorksheetToModelConversion, RevertCommitRequest, RevertCommitRequestRevertPolicyEnum, RevertResponse, RevertedMetadata, RevokeTokenRequest, RiseGQLArgWrapper, RiseSetter, Role, RoleResponse, RoleResponsePermissionEnum, RoleResponsePrivilegesEnum, PromiseRolesApi as RolesApi, RuntimeFilter, RuntimeFilters, RuntimeFiltersOperatorEnum, RuntimeParamOverride, RuntimeParameters, RuntimeSort, RuntimeSorts, RuntimeSortsOrderEnum, ScheduleHistoryRunsOptionsInput, PromiseSchedulesApi as SchedulesApi, SchedulesPdfOptionsInput, SchedulesPdfOptionsInputPageSizeEnum, SchemaObject, Scope, SearchCalendarsRequest, SearchCalendarsRequestSortOptions, SearchCalendarsRequestSortOptionsFieldNameEnum, SearchCalendarsRequestSortOptionsOrderEnum, SearchCommitsRequest, SearchCommitsRequestMetadataTypeEnum, SearchCommunicationChannelPreferencesRequest, SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum, SearchConfigRequest, SearchConnectionRequest, SearchConnectionRequestAuthenticationTypeEnum, SearchConnectionRequestDataWarehouseObjectTypeEnum, SearchConnectionRequestDataWarehouseTypesEnum, SearchConnectionRequestSortOptions, SearchConnectionRequestSortOptionsFieldNameEnum, SearchConnectionRequestSortOptionsOrderEnum, SearchConnectionResponse, SearchConnectionResponseDataWarehouseTypeEnum, SearchCustomActionsRequest, SearchCustomActionsRequestDefaultActionConfig, SearchCustomActionsRequestTypeEnum, SearchDataRequest, SearchDataRequestDataFormatEnum, SearchDataResponse, SearchEmailCustomizationRequest, SearchMetadataRequest, SearchMetadataRequestDependentObjectVersionEnum, SearchMetadataRequestFavoriteObjectOptions, SearchMetadataRequestLiveboardResponseVersionEnum, SearchMetadataRequestSortOptions, SearchMetadataRequestSortOptionsFieldNameEnum, SearchMetadataRequestSortOptionsOrderEnum, SearchOrgsRequest, SearchOrgsRequestStatusEnum, SearchOrgsRequestVisibilityEnum, SearchRoleResponse, SearchRoleResponsePermissionEnum, SearchRoleResponsePrivilegesEnum, SearchRolesRequest, SearchRolesRequestPermissionsEnum, SearchRolesRequestPrivilegesEnum, SearchSchedulesRequest, SearchSchedulesRequestHistoryRunsOptions, SearchSchedulesRequestSortOptions, SearchTagsRequest, SearchUserGroupsRequest, SearchUserGroupsRequestPrivilegesEnum, SearchUserGroupsRequestSortOptions, SearchUserGroupsRequestSortOptionsFieldNameEnum, SearchUserGroupsRequestSortOptionsOrderEnum, SearchUserGroupsRequestTypeEnum, SearchUserGroupsRequestVisibilityEnum, SearchUsersRequest, SearchUsersRequestAccountStatusEnum, SearchUsersRequestAccountTypeEnum, SearchUsersRequestPrivilegesEnum, SearchUsersRequestSortOptions, SearchUsersRequestSortOptionsFieldNameEnum, SearchUsersRequestSortOptionsOrderEnum, SearchUsersRequestVisibilityEnum, SearchVariablesRequest, SearchVariablesRequestResponseContentEnum, SearchWebhookConfigurationsRequest, SearchWebhookConfigurationsRequestEventTypeEnum, SearchWebhookConfigurationsRequestSortOptions, SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum, SearchWebhookConfigurationsRequestSortOptionsOrderEnum, PromiseSecurityApi as SecurityApi, SecurityAuthentication, SelfDecodingBody, SendAgentMessageRequest, SendAgentMessageResponse, SendAgentMessageStreamingRequest, SendMessageRequest, ServerConfiguration, SetNLInstructionsRequest, ShareMetadataRequest, ShareMetadataRequestMetadataTypeEnum, ShareMetadataTypeInput, ShareMetadataTypeInputTypeEnum, SharePermissionsInput, SharePermissionsInputShareModeEnum, SingleAnswerRequest, SortOption, SortOptionFieldNameEnum, SortOptionInput, SortOptionInputFieldNameEnum, SortOptionInputOrderEnum, SortOptionOrderEnum, SortOptions, SortOptionsFieldNameEnum, SortOptionsOrderEnum, SortingOptions, SqlQuery, SqlQueryResponse, SqlQueryResponseMetadataTypeEnum, PromiseSystemApi as SystemApi, SystemConfig, SystemInfo, SystemOverrideInfo, Table, Tag, TagMetadataTypeInput, TagMetadataTypeInputTypeEnum, PromiseTagsApi as TagsApi, TemplatePropertiesInputCreate, PromiseThoughtSpotRestApi as ThoughtSpotRestApi, Token, TokenAccessScopeObject, TokenAccessScopeObjectTypeEnum, TokenProvider, TokenValidationResponse, URL, URLInput, URLInputMandatory, UnparameterizeMetadataRequest, UnparameterizeMetadataRequestFieldTypeEnum, UnparameterizeMetadataRequestMetadataTypeEnum, UnpublishMetadataRequest, UpdateCalendarRequest, UpdateCalendarRequestCalendarTypeEnum, UpdateCalendarRequestMonthOffsetEnum, UpdateCalendarRequestStartDayOfWeekEnum, UpdateCalendarRequestTableReference, UpdateCalendarRequestUpdateMethodEnum, UpdateColumnSecurityRulesRequest, UpdateConfigRequest, UpdateConnectionConfigurationRequest, UpdateConnectionConfigurationRequestAuthenticationTypeEnum, UpdateConnectionConfigurationRequestPolicyProcessesEnum, UpdateConnectionConfigurationRequestPolicyTypeEnum, UpdateConnectionRequest, UpdateConnectionV2Request, UpdateCustomActionRequest, UpdateCustomActionRequestActionDetails, UpdateCustomActionRequestDefaultActionConfig, UpdateCustomActionRequestOperationEnum, UpdateEmailCustomizationRequest, UpdateMetadataHeaderRequest, UpdateMetadataObjIdRequest, UpdateObjIdInput, UpdateObjIdInputTypeEnum, UpdateOrgRequest, UpdateOrgRequestOperationEnum, UpdateRoleRequest, UpdateRoleRequestPrivilegesEnum, UpdateScheduleRequest, UpdateScheduleRequestFileFormatEnum, UpdateScheduleRequestFrequency, UpdateScheduleRequestLiveboardOptions, UpdateScheduleRequestMetadataTypeEnum, UpdateScheduleRequestPdfOptions, UpdateScheduleRequestPdfOptionsPageSizeEnum, UpdateScheduleRequestRecipientDetails, UpdateScheduleRequestStatusEnum, UpdateScheduleRequestTimeZoneEnum, UpdateSystemConfigRequest, UpdateTagRequest, UpdateUserGroupRequest, UpdateUserGroupRequestOperationEnum, UpdateUserGroupRequestPrivilegesEnum, UpdateUserGroupRequestTypeEnum, UpdateUserGroupRequestVisibilityEnum, UpdateUserRequest, UpdateUserRequestAccountStatusEnum, UpdateUserRequestAccountTypeEnum, UpdateUserRequestOperationEnum, UpdateUserRequestPreferredLocaleEnum, UpdateUserRequestVisibilityEnum, UpdateVariableRequest, UpdateVariableValuesRequest, UpdateWebhookConfigurationRequest, UpdateWebhookConfigurationRequestEventsEnum, User, UserAccountStatusEnum, UserAccountTypeEnum, UserGroup, UserGroupResponse, UserGroupResponseParentTypeEnum, UserGroupResponseTypeEnum, UserGroupResponseVisibilityEnum, UserInfo, UserObject, UserObjectTypeEnum, UserParameterOptions, UserParentTypeEnum, UserPrincipal, UserVisibilityEnum, PromiseUsersApi as UsersApi, ValidateMergeRequest, ValidateTokenRequest, ValueScopeInput, ValueScopeInputPrincipalTypeEnum, Variable, PromiseVariableApi as VariableApi, VariableDetailInput, VariableDetailInputTypeEnum, VariableUpdateAssignmentInput, VariableUpdateAssignmentInputOperationEnum, VariableUpdateScopeInput, VariableUpdateScopeInputPrincipalTypeEnum, VariableValue, VariableValuePrincipalTypeEnum, VariableValues, VariableVariableTypeEnum, PromiseVersionControlApi as VersionControlApi, WebhookAuthApiKey, WebhookAuthApiKeyInput, WebhookAuthBasicAuth, WebhookAuthBasicAuthInput, WebhookAuthOAuth2, WebhookAuthOAuth2Input, WebhookAuthentication, WebhookAuthenticationInput, WebhookDeleteFailure, WebhookDeleteResponse, WebhookOrg, WebhookPagination, WebhookResponse, WebhookResponseEventsEnum, WebhookSearchResponse, WebhookSignatureVerification, WebhookSignatureVerificationAlgorithmEnum, WebhookSignatureVerificationInput, WebhookSignatureVerificationInputAlgorithmEnum, WebhookSignatureVerificationInputTypeEnum, WebhookSignatureVerificationTypeEnum, WebhookSortOptionsInput, WebhookSortOptionsInputFieldNameEnum, WebhookSortOptionsInputOrderEnum, WebhookUser, PromiseWebhooksApi as WebhooksApi, configureAuthMethods, createBasicConfig, createBearerAuthenticationConfig, createConfiguration, server1, servers, wrapHttpLibrary }; diff --git a/sdks/typescript/dist/index.js b/sdks/typescript/dist/index.js index eb3d91569..0037731cd 100644 --- a/sdks/typescript/dist/index.js +++ b/sdks/typescript/dist/index.js @@ -281,6 +281,31 @@ function configureAuthMethods(config) { return authMethods; } +// models/AIContext.ts +var _AIContext = class _AIContext { + static getAttributeTypeMap() { + return _AIContext.attributeTypeMap; + } + constructor() { + } +}; +_AIContext.discriminator = void 0; +_AIContext.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "content", + "baseName": "content", + "type": "Array", + "format": "" + } +]; +var AIContext = _AIContext; + // models/APIKey.ts var _APIKey = class _APIKey { static getAttributeTypeMap() { @@ -567,6 +592,25 @@ _ActivateUserRequest.attributeTypeMap = [ ]; var ActivateUserRequest = _ActivateUserRequest; +// models/AgentConversation.ts +var _AgentConversation = class _AgentConversation { + static getAttributeTypeMap() { + return _AgentConversation.attributeTypeMap; + } + constructor() { + } +}; +_AgentConversation.discriminator = void 0; +_AgentConversation.attributeTypeMap = [ + { + "name": "conversation_id", + "baseName": "conversation_id", + "type": "string", + "format": "" + } +]; +var AgentConversation = _AgentConversation; + // models/AnswerContent.ts var _AnswerContent = class _AnswerContent { static getAttributeTypeMap() { @@ -622,6 +666,31 @@ _AnswerContent.attributeTypeMap = [ ]; var AnswerContent = _AnswerContent; +// models/AnswerContextInput.ts +var _AnswerContextInput = class _AnswerContextInput { + static getAttributeTypeMap() { + return _AnswerContextInput.attributeTypeMap; + } + constructor() { + } +}; +_AnswerContextInput.discriminator = void 0; +_AnswerContextInput.attributeTypeMap = [ + { + "name": "session_identifier", + "baseName": "session_identifier", + "type": "string", + "format": "" + }, + { + "name": "generation_number", + "baseName": "generation_number", + "type": "number", + "format": "int32" + } +]; +var AnswerContextInput = _AnswerContextInput; + // models/AnswerDataResponse.ts var _AnswerDataResponse = class _AnswerDataResponse { static getAttributeTypeMap() { @@ -1185,8 +1254,8 @@ _ColumnSecurityRule.attributeTypeMap = [ "format": "" }, { - "name": "sourceTableDetails", - "baseName": "sourceTableDetails", + "name": "source_table_details", + "baseName": "source_table_details", "type": "ColumnSecurityRuleSourceTable", "format": "" } @@ -1279,20 +1348,20 @@ var _ColumnSecurityRuleResponse = class _ColumnSecurityRuleResponse { _ColumnSecurityRuleResponse.discriminator = void 0; _ColumnSecurityRuleResponse.attributeTypeMap = [ { - "name": "guid", - "baseName": "guid", + "name": "table_guid", + "baseName": "table_guid", "type": "string", "format": "" }, { - "name": "objId", - "baseName": "objId", + "name": "obj_id", + "baseName": "obj_id", "type": "string", "format": "" }, { - "name": "columnSecurityRules", - "baseName": "columnSecurityRules", + "name": "column_security_rules", + "baseName": "column_security_rules", "type": "Array", "format": "" } @@ -1577,6 +1646,56 @@ _CommiterType.attributeTypeMap = [ ]; var CommiterType = _CommiterType; +// models/CommunicationChannelPreferencesResponse.ts +var _CommunicationChannelPreferencesResponse = class _CommunicationChannelPreferencesResponse { + static getAttributeTypeMap() { + return _CommunicationChannelPreferencesResponse.attributeTypeMap; + } + constructor() { + } +}; +_CommunicationChannelPreferencesResponse.discriminator = void 0; +_CommunicationChannelPreferencesResponse.attributeTypeMap = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } +]; +var CommunicationChannelPreferencesResponse = _CommunicationChannelPreferencesResponse; + +// models/ConfigureCommunicationChannelPreferencesRequest.ts +var _ConfigureCommunicationChannelPreferencesRequest = class _ConfigureCommunicationChannelPreferencesRequest { + static getAttributeTypeMap() { + return _ConfigureCommunicationChannelPreferencesRequest.attributeTypeMap; + } + constructor() { + } +}; +_ConfigureCommunicationChannelPreferencesRequest.discriminator = void 0; +_ConfigureCommunicationChannelPreferencesRequest.attributeTypeMap = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } +]; +var ConfigureCommunicationChannelPreferencesRequest = _ConfigureCommunicationChannelPreferencesRequest; + // models/ConnectionConfigurationResponse.ts var _ConnectionConfigurationResponse = class _ConnectionConfigurationResponse { static getAttributeTypeMap() { @@ -1706,6 +1825,43 @@ _ConnectionInput.attributeTypeMap = [ ]; var ConnectionInput = _ConnectionInput; +// models/ContextPayloadV2Input.ts +var _ContextPayloadV2Input = class _ContextPayloadV2Input { + static getAttributeTypeMap() { + return _ContextPayloadV2Input.attributeTypeMap; + } + constructor() { + } +}; +_ContextPayloadV2Input.discriminator = void 0; +_ContextPayloadV2Input.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "ContextPayloadV2InputTypeEnum", + "format": "" + }, + { + "name": "answer_context", + "baseName": "answer_context", + "type": "AnswerContextInput", + "format": "" + }, + { + "name": "liveboard_context", + "baseName": "liveboard_context", + "type": "LBContextInput", + "format": "" + }, + { + "name": "data_source_context", + "baseName": "data_source_context", + "type": "DataSourceContextInput", + "format": "" + } +]; +var ContextPayloadV2Input = _ContextPayloadV2Input; + // models/Conversation.ts var _Conversation = class _Conversation { static getAttributeTypeMap() { @@ -1725,6 +1881,37 @@ _Conversation.attributeTypeMap = [ ]; var Conversation = _Conversation; +// models/ConversationSettingsInput.ts +var _ConversationSettingsInput = class _ConversationSettingsInput { + static getAttributeTypeMap() { + return _ConversationSettingsInput.attributeTypeMap; + } + constructor() { + } +}; +_ConversationSettingsInput.discriminator = void 0; +_ConversationSettingsInput.attributeTypeMap = [ + { + "name": "enable_contextual_change_analysis", + "baseName": "enable_contextual_change_analysis", + "type": "boolean", + "format": "" + }, + { + "name": "enable_natural_language_answer_generation", + "baseName": "enable_natural_language_answer_generation", + "type": "boolean", + "format": "" + }, + { + "name": "enable_reasoning", + "baseName": "enable_reasoning", + "type": "boolean", + "format": "" + } +]; +var ConversationSettingsInput = _ConversationSettingsInput; + // models/ConvertWorksheetToModelRequest.ts var _ConvertWorksheetToModelRequest = class _ConvertWorksheetToModelRequest { static getAttributeTypeMap() { @@ -1799,6 +1986,99 @@ _CopyObjectRequest.attributeTypeMap = [ ]; var CopyObjectRequest = _CopyObjectRequest; +// models/CreateAgentConversationRequest.ts +var _CreateAgentConversationRequest = class _CreateAgentConversationRequest { + static getAttributeTypeMap() { + return _CreateAgentConversationRequest.attributeTypeMap; + } + constructor() { + } +}; +_CreateAgentConversationRequest.discriminator = void 0; +_CreateAgentConversationRequest.attributeTypeMap = [ + { + "name": "metadata_context", + "baseName": "metadata_context", + "type": "CreateAgentConversationRequestMetadataContext", + "format": "" + }, + { + "name": "conversation_settings", + "baseName": "conversation_settings", + "type": "CreateAgentConversationRequestConversationSettings", + "format": "" + } +]; +var CreateAgentConversationRequest = _CreateAgentConversationRequest; + +// models/CreateAgentConversationRequestConversationSettings.ts +var _CreateAgentConversationRequestConversationSettings = class _CreateAgentConversationRequestConversationSettings { + static getAttributeTypeMap() { + return _CreateAgentConversationRequestConversationSettings.attributeTypeMap; + } + constructor() { + } +}; +_CreateAgentConversationRequestConversationSettings.discriminator = void 0; +_CreateAgentConversationRequestConversationSettings.attributeTypeMap = [ + { + "name": "enable_contextual_change_analysis", + "baseName": "enable_contextual_change_analysis", + "type": "boolean", + "format": "" + }, + { + "name": "enable_natural_language_answer_generation", + "baseName": "enable_natural_language_answer_generation", + "type": "boolean", + "format": "" + }, + { + "name": "enable_reasoning", + "baseName": "enable_reasoning", + "type": "boolean", + "format": "" + } +]; +var CreateAgentConversationRequestConversationSettings = _CreateAgentConversationRequestConversationSettings; + +// models/CreateAgentConversationRequestMetadataContext.ts +var _CreateAgentConversationRequestMetadataContext = class _CreateAgentConversationRequestMetadataContext { + static getAttributeTypeMap() { + return _CreateAgentConversationRequestMetadataContext.attributeTypeMap; + } + constructor() { + } +}; +_CreateAgentConversationRequestMetadataContext.discriminator = void 0; +_CreateAgentConversationRequestMetadataContext.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "CreateAgentConversationRequestMetadataContextTypeEnum", + "format": "" + }, + { + "name": "answer_context", + "baseName": "answer_context", + "type": "AnswerContextInput", + "format": "" + }, + { + "name": "liveboard_context", + "baseName": "liveboard_context", + "type": "LBContextInput", + "format": "" + }, + { + "name": "data_source_context", + "baseName": "data_source_context", + "type": "DataSourceContextInput", + "format": "" + } +]; +var CreateAgentConversationRequestMetadataContext = _CreateAgentConversationRequestMetadataContext; + // models/CreateCalendarRequest.ts var _CreateCalendarRequest = class _CreateCalendarRequest { static getAttributeTypeMap() { @@ -2395,6 +2675,18 @@ _CreateEmailCustomizationRequestTemplateProperties.attributeTypeMap = [ "baseName": "hide_modify_alert", "type": "boolean", "format": "" + }, + { + "name": "company_privacy_policy_url", + "baseName": "company_privacy_policy_url", + "type": "string", + "format": "" + }, + { + "name": "company_website_url", + "baseName": "company_website_url", + "type": "string", + "format": "" } ]; var CreateEmailCustomizationRequestTemplateProperties = _CreateEmailCustomizationRequestTemplateProperties; @@ -2955,79 +3247,208 @@ _CreateVariableRequest.attributeTypeMap = [ "format": "" }, { - "name": "sensitive", - "baseName": "sensitive", + "name": "is_sensitive", + "baseName": "is_sensitive", "type": "boolean", "format": "" }, { - "name": "values", - "baseName": "values", - "type": "Array", + "name": "data_type", + "baseName": "data_type", + "type": "CreateVariableRequestDataTypeEnum", "format": "" } ]; var CreateVariableRequest = _CreateVariableRequest; -// models/CronExpression.ts -var _CronExpression = class _CronExpression { +// models/CreateWebhookConfigurationRequest.ts +var _CreateWebhookConfigurationRequest = class _CreateWebhookConfigurationRequest { static getAttributeTypeMap() { - return _CronExpression.attributeTypeMap; + return _CreateWebhookConfigurationRequest.attributeTypeMap; } constructor() { } }; -_CronExpression.discriminator = void 0; -_CronExpression.attributeTypeMap = [ +_CreateWebhookConfigurationRequest.discriminator = void 0; +_CreateWebhookConfigurationRequest.attributeTypeMap = [ { - "name": "day_of_month", - "baseName": "day_of_month", + "name": "name", + "baseName": "name", "type": "string", "format": "" }, { - "name": "day_of_week", - "baseName": "day_of_week", + "name": "description", + "baseName": "description", "type": "string", "format": "" }, { - "name": "hour", - "baseName": "hour", + "name": "url", + "baseName": "url", "type": "string", "format": "" }, { - "name": "minute", - "baseName": "minute", + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "CreateWebhookConfigurationRequestAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "CreateWebhookConfigurationRequestSignatureVerification", + "format": "" + } +]; +var CreateWebhookConfigurationRequest = _CreateWebhookConfigurationRequest; + +// models/CreateWebhookConfigurationRequestAuthentication.ts +var _CreateWebhookConfigurationRequestAuthentication = class _CreateWebhookConfigurationRequestAuthentication { + static getAttributeTypeMap() { + return _CreateWebhookConfigurationRequestAuthentication.attributeTypeMap; + } + constructor() { + } +}; +_CreateWebhookConfigurationRequestAuthentication.discriminator = void 0; +_CreateWebhookConfigurationRequestAuthentication.attributeTypeMap = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKeyInput", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuthInput", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", "type": "string", "format": "" }, { - "name": "month", - "baseName": "month", + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2Input", + "format": "" + } +]; +var CreateWebhookConfigurationRequestAuthentication = _CreateWebhookConfigurationRequestAuthentication; + +// models/CreateWebhookConfigurationRequestSignatureVerification.ts +var _CreateWebhookConfigurationRequestSignatureVerification = class _CreateWebhookConfigurationRequestSignatureVerification { + static getAttributeTypeMap() { + return _CreateWebhookConfigurationRequestSignatureVerification.attributeTypeMap; + } + constructor() { + } +}; +_CreateWebhookConfigurationRequestSignatureVerification.discriminator = void 0; +_CreateWebhookConfigurationRequestSignatureVerification.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "CreateWebhookConfigurationRequestSignatureVerificationTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", "type": "string", "format": "" }, { - "name": "second", - "baseName": "second", + "name": "algorithm", + "baseName": "algorithm", + "type": "CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", "type": "string", "format": "" } ]; -var CronExpression = _CronExpression; +var CreateWebhookConfigurationRequestSignatureVerification = _CreateWebhookConfigurationRequestSignatureVerification; -// models/CronExpressionInput.ts -var _CronExpressionInput = class _CronExpressionInput { +// models/CronExpression.ts +var _CronExpression = class _CronExpression { static getAttributeTypeMap() { - return _CronExpressionInput.attributeTypeMap; + return _CronExpression.attributeTypeMap; } constructor() { } }; -_CronExpressionInput.discriminator = void 0; -_CronExpressionInput.attributeTypeMap = [ +_CronExpression.discriminator = void 0; +_CronExpression.attributeTypeMap = [ + { + "name": "day_of_month", + "baseName": "day_of_month", + "type": "string", + "format": "" + }, + { + "name": "day_of_week", + "baseName": "day_of_week", + "type": "string", + "format": "" + }, + { + "name": "hour", + "baseName": "hour", + "type": "string", + "format": "" + }, + { + "name": "minute", + "baseName": "minute", + "type": "string", + "format": "" + }, + { + "name": "month", + "baseName": "month", + "type": "string", + "format": "" + }, + { + "name": "second", + "baseName": "second", + "type": "string", + "format": "" + } +]; +var CronExpression = _CronExpression; + +// models/CronExpressionInput.ts +var _CronExpressionInput = class _CronExpressionInput { + static getAttributeTypeMap() { + return _CronExpressionInput.attributeTypeMap; + } + constructor() { + } +}; +_CronExpressionInput.discriminator = void 0; +_CronExpressionInput.attributeTypeMap = [ { "name": "day_of_month", "baseName": "day_of_month", @@ -3092,6 +3513,56 @@ _CustomActionMetadataTypeInput.attributeTypeMap = [ ]; var CustomActionMetadataTypeInput = _CustomActionMetadataTypeInput; +// models/DataSource.ts +var _DataSource = class _DataSource { + static getAttributeTypeMap() { + return _DataSource.attributeTypeMap; + } + constructor() { + } +}; +_DataSource.discriminator = void 0; +_DataSource.attributeTypeMap = [ + { + "name": "confidence", + "baseName": "confidence", + "type": "number", + "format": "float" + }, + { + "name": "details", + "baseName": "details", + "type": "EntityHeader", + "format": "" + }, + { + "name": "reasoning", + "baseName": "reasoning", + "type": "string", + "format": "" + } +]; +var DataSource = _DataSource; + +// models/DataSourceContextInput.ts +var _DataSourceContextInput = class _DataSourceContextInput { + static getAttributeTypeMap() { + return _DataSourceContextInput.attributeTypeMap; + } + constructor() { + } +}; +_DataSourceContextInput.discriminator = void 0; +_DataSourceContextInput.attributeTypeMap = [ + { + "name": "guid", + "baseName": "guid", + "type": "string", + "format": "" + } +]; +var DataSourceContextInput = _DataSourceContextInput; + // models/DataWarehouseObjectInput.ts var _DataWarehouseObjectInput = class _DataWarehouseObjectInput { static getAttributeTypeMap() { @@ -3467,6 +3938,25 @@ _DeleteOrgEmailCustomizationRequest.attributeTypeMap = [ ]; var DeleteOrgEmailCustomizationRequest = _DeleteOrgEmailCustomizationRequest; +// models/DeleteWebhookConfigurationsRequest.ts +var _DeleteWebhookConfigurationsRequest = class _DeleteWebhookConfigurationsRequest { + static getAttributeTypeMap() { + return _DeleteWebhookConfigurationsRequest.attributeTypeMap; + } + constructor() { + } +}; +_DeleteWebhookConfigurationsRequest.discriminator = void 0; +_DeleteWebhookConfigurationsRequest.attributeTypeMap = [ + { + "name": "webhook_identifiers", + "baseName": "webhook_identifiers", + "type": "Array", + "format": "" + } +]; +var DeleteWebhookConfigurationsRequest = _DeleteWebhookConfigurationsRequest; + // models/DeployCommitRequest.ts var _DeployCommitRequest = class _DeployCommitRequest { static getAttributeTypeMap() { @@ -3547,6 +4037,37 @@ _DeployResponse.attributeTypeMap = [ ]; var DeployResponse = _DeployResponse; +// models/EntityHeader.ts +var _EntityHeader = class _EntityHeader { + static getAttributeTypeMap() { + return _EntityHeader.attributeTypeMap; + } + constructor() { + } +}; +_EntityHeader.discriminator = void 0; +_EntityHeader.attributeTypeMap = [ + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "data_source_name", + "baseName": "data_source_name", + "type": "string", + "format": "" + }, + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + } +]; +var EntityHeader = _EntityHeader; + // models/ErrorResponse.ts var _ErrorResponse = class _ErrorResponse { static getAttributeTypeMap() { @@ -3566,6 +4087,25 @@ _ErrorResponse.attributeTypeMap = [ ]; var ErrorResponse = _ErrorResponse; +// models/EurekaDataSourceSuggestionResponse.ts +var _EurekaDataSourceSuggestionResponse = class _EurekaDataSourceSuggestionResponse { + static getAttributeTypeMap() { + return _EurekaDataSourceSuggestionResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaDataSourceSuggestionResponse.discriminator = void 0; +_EurekaDataSourceSuggestionResponse.attributeTypeMap = [ + { + "name": "data_sources", + "baseName": "data_sources", + "type": "Array", + "format": "" + } +]; +var EurekaDataSourceSuggestionResponse = _EurekaDataSourceSuggestionResponse; + // models/EurekaDecomposeQueryResponse.ts var _EurekaDecomposeQueryResponse = class _EurekaDecomposeQueryResponse { static getAttributeTypeMap() { @@ -3585,6 +4125,44 @@ _EurekaDecomposeQueryResponse.attributeTypeMap = [ ]; var EurekaDecomposeQueryResponse = _EurekaDecomposeQueryResponse; +// models/EurekaGetNLInstructionsResponse.ts +var _EurekaGetNLInstructionsResponse = class _EurekaGetNLInstructionsResponse { + static getAttributeTypeMap() { + return _EurekaGetNLInstructionsResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaGetNLInstructionsResponse.discriminator = void 0; +_EurekaGetNLInstructionsResponse.attributeTypeMap = [ + { + "name": "nl_instructions_info", + "baseName": "nl_instructions_info", + "type": "Array", + "format": "" + } +]; +var EurekaGetNLInstructionsResponse = _EurekaGetNLInstructionsResponse; + +// models/EurekaGetRelevantQuestionsResponse.ts +var _EurekaGetRelevantQuestionsResponse = class _EurekaGetRelevantQuestionsResponse { + static getAttributeTypeMap() { + return _EurekaGetRelevantQuestionsResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaGetRelevantQuestionsResponse.discriminator = void 0; +_EurekaGetRelevantQuestionsResponse.attributeTypeMap = [ + { + "name": "relevant_questions", + "baseName": "relevant_questions", + "type": "Array", + "format": "" + } +]; +var EurekaGetRelevantQuestionsResponse = _EurekaGetRelevantQuestionsResponse; + // models/EurekaLLMDecomposeQueryResponse.ts var _EurekaLLMDecomposeQueryResponse = class _EurekaLLMDecomposeQueryResponse { static getAttributeTypeMap() { @@ -3635,6 +4213,106 @@ _EurekaLLMSuggestedQuery.attributeTypeMap = [ ]; var EurekaLLMSuggestedQuery = _EurekaLLMSuggestedQuery; +// models/EurekaRelevantQuestion.ts +var _EurekaRelevantQuestion = class _EurekaRelevantQuestion { + static getAttributeTypeMap() { + return _EurekaRelevantQuestion.attributeTypeMap; + } + constructor() { + } +}; +_EurekaRelevantQuestion.discriminator = void 0; +_EurekaRelevantQuestion.attributeTypeMap = [ + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + }, + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + }, + { + "name": "data_source_name", + "baseName": "data_source_name", + "type": "string", + "format": "" + } +]; +var EurekaRelevantQuestion = _EurekaRelevantQuestion; + +// models/EurekaSetNLInstructionsResponse.ts +var _EurekaSetNLInstructionsResponse = class _EurekaSetNLInstructionsResponse { + static getAttributeTypeMap() { + return _EurekaSetNLInstructionsResponse.attributeTypeMap; + } + constructor() { + } +}; +_EurekaSetNLInstructionsResponse.discriminator = void 0; +_EurekaSetNLInstructionsResponse.attributeTypeMap = [ + { + "name": "success", + "baseName": "success", + "type": "boolean", + "format": "" + } +]; +var EurekaSetNLInstructionsResponse = _EurekaSetNLInstructionsResponse; + +// models/EventChannelConfig.ts +var _EventChannelConfig = class _EventChannelConfig { + static getAttributeTypeMap() { + return _EventChannelConfig.attributeTypeMap; + } + constructor() { + } +}; +_EventChannelConfig.discriminator = void 0; +_EventChannelConfig.attributeTypeMap = [ + { + "name": "event_type", + "baseName": "event_type", + "type": "EventChannelConfigEventTypeEnum", + "format": "" + }, + { + "name": "channels", + "baseName": "channels", + "type": "Array", + "format": "" + } +]; +var EventChannelConfig = _EventChannelConfig; + +// models/EventChannelConfigInput.ts +var _EventChannelConfigInput = class _EventChannelConfigInput { + static getAttributeTypeMap() { + return _EventChannelConfigInput.attributeTypeMap; + } + constructor() { + } +}; +_EventChannelConfigInput.discriminator = void 0; +_EventChannelConfigInput.attributeTypeMap = [ + { + "name": "event_type", + "baseName": "event_type", + "type": "EventChannelConfigInputEventTypeEnum", + "format": "" + }, + { + "name": "channels", + "baseName": "channels", + "type": "Array", + "format": "" + } +]; +var EventChannelConfigInput = _EventChannelConfigInput; + // models/ExcludeMetadataListItemInput.ts var _ExcludeMetadataListItemInput = class _ExcludeMetadataListItemInput { static getAttributeTypeMap() { @@ -4108,6 +4786,12 @@ _ExportMetadataTMLRequestExportOptions.attributeTypeMap = [ "baseName": "export_column_security_rules", "type": "boolean", "format": "" + }, + { + "name": "export_with_column_aliases", + "baseName": "export_with_column_aliases", + "type": "boolean", + "format": "" } ]; var ExportMetadataTMLRequestExportOptions = _ExportMetadataTMLRequestExportOptions; @@ -4188,6 +4872,12 @@ _ExportOptions.attributeTypeMap = [ "baseName": "export_column_security_rules", "type": "boolean", "format": "" + }, + { + "name": "export_with_column_aliases", + "baseName": "export_with_column_aliases", + "type": "boolean", + "format": "" } ]; var ExportOptions = _ExportOptions; @@ -4943,6 +5633,12 @@ _GetCustomAccessTokenRequest.attributeTypeMap = [ "type": "Array", "format": "" }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "Array", + "format": "" + }, { "name": "objects", "baseName": "objects", @@ -4976,6 +5672,25 @@ _GetCustomAccessTokenRequest.attributeTypeMap = [ ]; var GetCustomAccessTokenRequest = _GetCustomAccessTokenRequest; +// models/GetDataSourceSuggestionsRequest.ts +var _GetDataSourceSuggestionsRequest = class _GetDataSourceSuggestionsRequest { + static getAttributeTypeMap() { + return _GetDataSourceSuggestionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_GetDataSourceSuggestionsRequest.discriminator = void 0; +_GetDataSourceSuggestionsRequest.attributeTypeMap = [ + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + } +]; +var GetDataSourceSuggestionsRequest = _GetDataSourceSuggestionsRequest; + // models/GetFullAccessTokenRequest.ts var _GetFullAccessTokenRequest = class _GetFullAccessTokenRequest { static getAttributeTypeMap() { @@ -5086,6 +5801,25 @@ _GetFullAccessTokenRequestUserParameters.attributeTypeMap = [ ]; var GetFullAccessTokenRequestUserParameters = _GetFullAccessTokenRequestUserParameters; +// models/GetNLInstructionsRequest.ts +var _GetNLInstructionsRequest = class _GetNLInstructionsRequest { + static getAttributeTypeMap() { + return _GetNLInstructionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_GetNLInstructionsRequest.discriminator = void 0; +_GetNLInstructionsRequest.attributeTypeMap = [ + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + } +]; +var GetNLInstructionsRequest = _GetNLInstructionsRequest; + // models/GetObjectAccessTokenRequest.ts var _GetObjectAccessTokenRequest = class _GetObjectAccessTokenRequest { static getAttributeTypeMap() { @@ -5165,6 +5899,111 @@ _GetObjectAccessTokenRequest.attributeTypeMap = [ ]; var GetObjectAccessTokenRequest = _GetObjectAccessTokenRequest; +// models/GetRelevantQuestionsRequest.ts +var _GetRelevantQuestionsRequest = class _GetRelevantQuestionsRequest { + static getAttributeTypeMap() { + return _GetRelevantQuestionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_GetRelevantQuestionsRequest.discriminator = void 0; +_GetRelevantQuestionsRequest.attributeTypeMap = [ + { + "name": "metadata_context", + "baseName": "metadata_context", + "type": "GetRelevantQuestionsRequestMetadataContext", + "format": "" + }, + { + "name": "limit_relevant_questions", + "baseName": "limit_relevant_questions", + "type": "number", + "format": "int32" + }, + { + "name": "bypass_cache", + "baseName": "bypass_cache", + "type": "boolean", + "format": "" + }, + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + }, + { + "name": "ai_context", + "baseName": "ai_context", + "type": "GetRelevantQuestionsRequestAiContext", + "format": "" + } +]; +var GetRelevantQuestionsRequest = _GetRelevantQuestionsRequest; + +// models/GetRelevantQuestionsRequestAiContext.ts +var _GetRelevantQuestionsRequestAiContext = class _GetRelevantQuestionsRequestAiContext { + static getAttributeTypeMap() { + return _GetRelevantQuestionsRequestAiContext.attributeTypeMap; + } + constructor() { + } +}; +_GetRelevantQuestionsRequestAiContext.discriminator = void 0; +_GetRelevantQuestionsRequestAiContext.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "content", + "baseName": "content", + "type": "Array", + "format": "" + } +]; +var GetRelevantQuestionsRequestAiContext = _GetRelevantQuestionsRequestAiContext; + +// models/GetRelevantQuestionsRequestMetadataContext.ts +var _GetRelevantQuestionsRequestMetadataContext = class _GetRelevantQuestionsRequestMetadataContext { + static getAttributeTypeMap() { + return _GetRelevantQuestionsRequestMetadataContext.attributeTypeMap; + } + constructor() { + } +}; +_GetRelevantQuestionsRequestMetadataContext.discriminator = void 0; +_GetRelevantQuestionsRequestMetadataContext.attributeTypeMap = [ + { + "name": "data_source_identifiers", + "baseName": "data_source_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "answer_identifiers", + "baseName": "answer_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "liveboard_identifiers", + "baseName": "liveboard_identifiers", + "type": "Array", + "format": "" + } +]; +var GetRelevantQuestionsRequestMetadataContext = _GetRelevantQuestionsRequestMetadataContext; + // models/GetTokenResponse.ts var _GetTokenResponse = class _GetTokenResponse { static getAttributeTypeMap() { @@ -5846,49 +6685,6 @@ _InputEurekaNLSRequest.attributeTypeMap = [ ]; var InputEurekaNLSRequest = _InputEurekaNLSRequest; -// models/InputVariableValue.ts -var _InputVariableValue = class _InputVariableValue { - static getAttributeTypeMap() { - return _InputVariableValue.attributeTypeMap; - } - constructor() { - } -}; -_InputVariableValue.discriminator = void 0; -_InputVariableValue.attributeTypeMap = [ - { - "name": "value", - "baseName": "value", - "type": "string", - "format": "" - }, - { - "name": "org_identifier", - "baseName": "org_identifier", - "type": "string", - "format": "" - }, - { - "name": "principal_type", - "baseName": "principal_type", - "type": "InputVariableValuePrincipalTypeEnum", - "format": "" - }, - { - "name": "principal_identifier", - "baseName": "principal_identifier", - "type": "string", - "format": "" - }, - { - "name": "priority", - "baseName": "priority", - "type": "number", - "format": "int32" - } -]; -var InputVariableValue = _InputVariableValue; - // models/JWTMetadataObject.ts var _JWTMetadataObject = class _JWTMetadataObject { static getAttributeTypeMap() { @@ -5989,6 +6785,31 @@ _JWTUserOptionsFull.attributeTypeMap = [ ]; var JWTUserOptionsFull = _JWTUserOptionsFull; +// models/LBContextInput.ts +var _LBContextInput = class _LBContextInput { + static getAttributeTypeMap() { + return _LBContextInput.attributeTypeMap; + } + constructor() { + } +}; +_LBContextInput.discriminator = void 0; +_LBContextInput.attributeTypeMap = [ + { + "name": "liveboard_identifier", + "baseName": "liveboard_identifier", + "type": "string", + "format": "" + }, + { + "name": "visualization_identifier", + "baseName": "visualization_identifier", + "type": "string", + "format": "" + } +]; +var LBContextInput = _LBContextInput; + // models/LiveboardContent.ts var _LiveboardContent = class _LiveboardContent { static getAttributeTypeMap() { @@ -6218,6 +7039,43 @@ _MetadataAssociationItem.attributeTypeMap = [ ]; var MetadataAssociationItem = _MetadataAssociationItem; +// models/MetadataContext.ts +var _MetadataContext = class _MetadataContext { + static getAttributeTypeMap() { + return _MetadataContext.attributeTypeMap; + } + constructor() { + } +}; +_MetadataContext.discriminator = void 0; +_MetadataContext.attributeTypeMap = [ + { + "name": "data_source_identifiers", + "baseName": "data_source_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "answer_identifiers", + "baseName": "answer_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "liveboard_identifiers", + "baseName": "liveboard_identifiers", + "type": "Array", + "format": "" + } +]; +var MetadataContext = _MetadataContext; + // models/MetadataInput.ts var _MetadataInput = class _MetadataInput { static getAttributeTypeMap() { @@ -6471,6 +7329,56 @@ _ModelTableList.attributeTypeMap = [ ]; var ModelTableList = _ModelTableList; +// models/NLInstructionsInfo.ts +var _NLInstructionsInfo = class _NLInstructionsInfo { + static getAttributeTypeMap() { + return _NLInstructionsInfo.attributeTypeMap; + } + constructor() { + } +}; +_NLInstructionsInfo.discriminator = void 0; +_NLInstructionsInfo.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "scope", + "baseName": "scope", + "type": "NLInstructionsInfoScopeEnum", + "format": "" + } +]; +var NLInstructionsInfo = _NLInstructionsInfo; + +// models/NLInstructionsInfoInput.ts +var _NLInstructionsInfoInput = class _NLInstructionsInfoInput { + static getAttributeTypeMap() { + return _NLInstructionsInfoInput.attributeTypeMap; + } + constructor() { + } +}; +_NLInstructionsInfoInput.discriminator = void 0; +_NLInstructionsInfoInput.attributeTypeMap = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "scope", + "baseName": "scope", + "type": "NLInstructionsInfoInputScopeEnum", + "format": "" + } +]; +var NLInstructionsInfoInput = _NLInstructionsInfoInput; + // models/ObjectIDAndName.ts var _ObjectIDAndName = class _ObjectIDAndName { static getAttributeTypeMap() { @@ -6521,6 +7429,93 @@ _Org.attributeTypeMap = [ ]; var Org = _Org; +// models/OrgChannelConfigInput.ts +var _OrgChannelConfigInput = class _OrgChannelConfigInput { + static getAttributeTypeMap() { + return _OrgChannelConfigInput.attributeTypeMap; + } + constructor() { + } +}; +_OrgChannelConfigInput.discriminator = void 0; +_OrgChannelConfigInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "operation", + "baseName": "operation", + "type": "OrgChannelConfigInputOperationEnum", + "format": "" + }, + { + "name": "preferences", + "baseName": "preferences", + "type": "Array", + "format": "" + }, + { + "name": "reset_events", + "baseName": "reset_events", + "type": "Array", + "format": "" + } +]; +var OrgChannelConfigInput = _OrgChannelConfigInput; + +// models/OrgChannelConfigResponse.ts +var _OrgChannelConfigResponse = class _OrgChannelConfigResponse { + static getAttributeTypeMap() { + return _OrgChannelConfigResponse.attributeTypeMap; + } + constructor() { + } +}; +_OrgChannelConfigResponse.discriminator = void 0; +_OrgChannelConfigResponse.attributeTypeMap = [ + { + "name": "org", + "baseName": "org", + "type": "OrgDetails", + "format": "" + }, + { + "name": "preferences", + "baseName": "preferences", + "type": "Array", + "format": "" + } +]; +var OrgChannelConfigResponse = _OrgChannelConfigResponse; + +// models/OrgDetails.ts +var _OrgDetails = class _OrgDetails { + static getAttributeTypeMap() { + return _OrgDetails.attributeTypeMap; + } + constructor() { + } +}; +_OrgDetails.discriminator = void 0; +_OrgDetails.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } +]; +var OrgDetails = _OrgDetails; + // models/OrgInfo.ts var _OrgInfo = class _OrgInfo { static getAttributeTypeMap() { @@ -6546,6 +7541,31 @@ _OrgInfo.attributeTypeMap = [ ]; var OrgInfo = _OrgInfo; +// models/OrgPreferenceSearchCriteriaInput.ts +var _OrgPreferenceSearchCriteriaInput = class _OrgPreferenceSearchCriteriaInput { + static getAttributeTypeMap() { + return _OrgPreferenceSearchCriteriaInput.attributeTypeMap; + } + constructor() { + } +}; +_OrgPreferenceSearchCriteriaInput.discriminator = void 0; +_OrgPreferenceSearchCriteriaInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "event_types", + "baseName": "event_types", + "type": "Array", + "format": "" + } +]; +var OrgPreferenceSearchCriteriaInput = _OrgPreferenceSearchCriteriaInput; + // models/OrgResponse.ts var _OrgResponse = class _OrgResponse { static getAttributeTypeMap() { @@ -8719,6 +9739,31 @@ _SearchCommitsRequest.attributeTypeMap = [ ]; var SearchCommitsRequest = _SearchCommitsRequest; +// models/SearchCommunicationChannelPreferencesRequest.ts +var _SearchCommunicationChannelPreferencesRequest = class _SearchCommunicationChannelPreferencesRequest { + static getAttributeTypeMap() { + return _SearchCommunicationChannelPreferencesRequest.attributeTypeMap; + } + constructor() { + } +}; +_SearchCommunicationChannelPreferencesRequest.discriminator = void 0; +_SearchCommunicationChannelPreferencesRequest.attributeTypeMap = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } +]; +var SearchCommunicationChannelPreferencesRequest = _SearchCommunicationChannelPreferencesRequest; + // models/SearchConfigRequest.ts var _SearchConfigRequest = class _SearchConfigRequest { static getAttributeTypeMap() { @@ -9946,6 +10991,12 @@ _SearchVariablesRequest.attributeTypeMap = [ "type": "Array", "format": "" }, + { + "name": "value_scope", + "baseName": "value_scope", + "type": "Array", + "format": "" + }, { "name": "record_offset", "baseName": "record_offset", @@ -9959,14 +11010,157 @@ _SearchVariablesRequest.attributeTypeMap = [ "format": "int32" }, { - "name": "output_format", - "baseName": "output_format", - "type": "SearchVariablesRequestOutputFormatEnum", + "name": "response_content", + "baseName": "response_content", + "type": "SearchVariablesRequestResponseContentEnum", "format": "" } ]; var SearchVariablesRequest = _SearchVariablesRequest; +// models/SearchWebhookConfigurationsRequest.ts +var _SearchWebhookConfigurationsRequest = class _SearchWebhookConfigurationsRequest { + static getAttributeTypeMap() { + return _SearchWebhookConfigurationsRequest.attributeTypeMap; + } + constructor() { + } +}; +_SearchWebhookConfigurationsRequest.discriminator = void 0; +_SearchWebhookConfigurationsRequest.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "webhook_identifier", + "baseName": "webhook_identifier", + "type": "string", + "format": "" + }, + { + "name": "event_type", + "baseName": "event_type", + "type": "SearchWebhookConfigurationsRequestEventTypeEnum", + "format": "" + }, + { + "name": "record_offset", + "baseName": "record_offset", + "type": "number", + "format": "int32" + }, + { + "name": "record_size", + "baseName": "record_size", + "type": "number", + "format": "int32" + }, + { + "name": "sort_options", + "baseName": "sort_options", + "type": "SearchWebhookConfigurationsRequestSortOptions", + "format": "" + } +]; +var SearchWebhookConfigurationsRequest = _SearchWebhookConfigurationsRequest; + +// models/SearchWebhookConfigurationsRequestSortOptions.ts +var _SearchWebhookConfigurationsRequestSortOptions = class _SearchWebhookConfigurationsRequestSortOptions { + static getAttributeTypeMap() { + return _SearchWebhookConfigurationsRequestSortOptions.attributeTypeMap; + } + constructor() { + } +}; +_SearchWebhookConfigurationsRequestSortOptions.discriminator = void 0; +_SearchWebhookConfigurationsRequestSortOptions.attributeTypeMap = [ + { + "name": "field_name", + "baseName": "field_name", + "type": "SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum", + "format": "" + }, + { + "name": "order", + "baseName": "order", + "type": "SearchWebhookConfigurationsRequestSortOptionsOrderEnum", + "format": "" + } +]; +var SearchWebhookConfigurationsRequestSortOptions = _SearchWebhookConfigurationsRequestSortOptions; + +// models/SendAgentMessageRequest.ts +var _SendAgentMessageRequest = class _SendAgentMessageRequest { + static getAttributeTypeMap() { + return _SendAgentMessageRequest.attributeTypeMap; + } + constructor() { + } +}; +_SendAgentMessageRequest.discriminator = void 0; +_SendAgentMessageRequest.attributeTypeMap = [ + { + "name": "messages", + "baseName": "messages", + "type": "Array", + "format": "" + } +]; +var SendAgentMessageRequest = _SendAgentMessageRequest; + +// models/SendAgentMessageResponse.ts +var _SendAgentMessageResponse = class _SendAgentMessageResponse { + static getAttributeTypeMap() { + return _SendAgentMessageResponse.attributeTypeMap; + } + constructor() { + } +}; +_SendAgentMessageResponse.discriminator = void 0; +_SendAgentMessageResponse.attributeTypeMap = [ + { + "name": "success", + "baseName": "success", + "type": "boolean", + "format": "" + }, + { + "name": "message", + "baseName": "message", + "type": "string", + "format": "" + } +]; +var SendAgentMessageResponse = _SendAgentMessageResponse; + +// models/SendAgentMessageStreamingRequest.ts +var _SendAgentMessageStreamingRequest = class _SendAgentMessageStreamingRequest { + static getAttributeTypeMap() { + return _SendAgentMessageStreamingRequest.attributeTypeMap; + } + constructor() { + } +}; +_SendAgentMessageStreamingRequest.discriminator = void 0; +_SendAgentMessageStreamingRequest.attributeTypeMap = [ + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "messages", + "baseName": "messages", + "type": "Array", + "format": "" + } +]; +var SendAgentMessageStreamingRequest = _SendAgentMessageStreamingRequest; + // models/SendMessageRequest.ts var _SendMessageRequest = class _SendMessageRequest { static getAttributeTypeMap() { @@ -9992,6 +11186,31 @@ _SendMessageRequest.attributeTypeMap = [ ]; var SendMessageRequest = _SendMessageRequest; +// models/SetNLInstructionsRequest.ts +var _SetNLInstructionsRequest = class _SetNLInstructionsRequest { + static getAttributeTypeMap() { + return _SetNLInstructionsRequest.attributeTypeMap; + } + constructor() { + } +}; +_SetNLInstructionsRequest.discriminator = void 0; +_SetNLInstructionsRequest.attributeTypeMap = [ + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + }, + { + "name": "nl_instructions_info", + "baseName": "nl_instructions_info", + "type": "Array", + "format": "" + } +]; +var SetNLInstructionsRequest = _SetNLInstructionsRequest; + // models/ShareMetadataRequest.ts var _ShareMetadataRequest = class _ShareMetadataRequest { static getAttributeTypeMap() { @@ -10809,6 +12028,18 @@ _TemplatePropertiesInputCreate.attributeTypeMap = [ "baseName": "hide_modify_alert", "type": "boolean", "format": "" + }, + { + "name": "company_privacy_policy_url", + "baseName": "company_privacy_policy_url", + "type": "string", + "format": "" + }, + { + "name": "company_website_url", + "baseName": "company_website_url", + "type": "string", + "format": "" } ]; var TemplatePropertiesInputCreate = _TemplatePropertiesInputCreate; @@ -12205,18 +13436,6 @@ _UpdateVariableRequest.attributeTypeMap = [ "baseName": "name", "type": "string", "format": "" - }, - { - "name": "operation", - "baseName": "operation", - "type": "UpdateVariableRequestOperationEnum", - "format": "" - }, - { - "name": "values", - "baseName": "values", - "type": "Array", - "format": "" } ]; var UpdateVariableRequest = _UpdateVariableRequest; @@ -12232,20 +13451,75 @@ var _UpdateVariableValuesRequest = class _UpdateVariableValuesRequest { _UpdateVariableValuesRequest.discriminator = void 0; _UpdateVariableValuesRequest.attributeTypeMap = [ { - "name": "variable_updates", - "baseName": "variable_updates", - "type": "Array", + "name": "variable_assignment", + "baseName": "variable_assignment", + "type": "Array", "format": "" }, { - "name": "operation", - "baseName": "operation", - "type": "UpdateVariableValuesRequestOperationEnum", + "name": "variable_value_scope", + "baseName": "variable_value_scope", + "type": "Array", "format": "" } ]; var UpdateVariableValuesRequest = _UpdateVariableValuesRequest; +// models/UpdateWebhookConfigurationRequest.ts +var _UpdateWebhookConfigurationRequest = class _UpdateWebhookConfigurationRequest { + static getAttributeTypeMap() { + return _UpdateWebhookConfigurationRequest.attributeTypeMap; + } + constructor() { + } +}; +_UpdateWebhookConfigurationRequest.discriminator = void 0; +_UpdateWebhookConfigurationRequest.attributeTypeMap = [ + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "CreateWebhookConfigurationRequestAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "CreateWebhookConfigurationRequestSignatureVerification", + "format": "" + } +]; +var UpdateWebhookConfigurationRequest = _UpdateWebhookConfigurationRequest; + // models/User.ts var _User = class _User { static getAttributeTypeMap() { @@ -12525,6 +13799,12 @@ _User.attributeTypeMap = [ "baseName": "access_control_properties", "type": "any", "format": "" + }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "any", + "format": "" } ]; var User = _User; @@ -12909,6 +14189,43 @@ _ValidateTokenRequest.attributeTypeMap = [ ]; var ValidateTokenRequest = _ValidateTokenRequest; +// models/ValueScopeInput.ts +var _ValueScopeInput = class _ValueScopeInput { + static getAttributeTypeMap() { + return _ValueScopeInput.attributeTypeMap; + } + constructor() { + } +}; +_ValueScopeInput.discriminator = void 0; +_ValueScopeInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "principal_type", + "baseName": "principal_type", + "type": "ValueScopeInputPrincipalTypeEnum", + "format": "" + }, + { + "name": "principal_identifier", + "baseName": "principal_identifier", + "type": "string", + "format": "" + }, + { + "name": "model_identifier", + "baseName": "model_identifier", + "type": "string", + "format": "" + } +]; +var ValueScopeInput = _ValueScopeInput; + // models/Variable.ts var _Variable = class _Variable { static getAttributeTypeMap() { @@ -12983,6 +14300,80 @@ _VariableDetailInput.attributeTypeMap = [ ]; var VariableDetailInput = _VariableDetailInput; +// models/VariableUpdateAssignmentInput.ts +var _VariableUpdateAssignmentInput = class _VariableUpdateAssignmentInput { + static getAttributeTypeMap() { + return _VariableUpdateAssignmentInput.attributeTypeMap; + } + constructor() { + } +}; +_VariableUpdateAssignmentInput.discriminator = void 0; +_VariableUpdateAssignmentInput.attributeTypeMap = [ + { + "name": "variable_identifier", + "baseName": "variable_identifier", + "type": "string", + "format": "" + }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "Array", + "format": "" + }, + { + "name": "operation", + "baseName": "operation", + "type": "VariableUpdateAssignmentInputOperationEnum", + "format": "" + } +]; +var VariableUpdateAssignmentInput = _VariableUpdateAssignmentInput; + +// models/VariableUpdateScopeInput.ts +var _VariableUpdateScopeInput = class _VariableUpdateScopeInput { + static getAttributeTypeMap() { + return _VariableUpdateScopeInput.attributeTypeMap; + } + constructor() { + } +}; +_VariableUpdateScopeInput.discriminator = void 0; +_VariableUpdateScopeInput.attributeTypeMap = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "principal_type", + "baseName": "principal_type", + "type": "VariableUpdateScopeInputPrincipalTypeEnum", + "format": "" + }, + { + "name": "principal_identifier", + "baseName": "principal_identifier", + "type": "string", + "format": "" + }, + { + "name": "model_identifier", + "baseName": "model_identifier", + "type": "string", + "format": "" + }, + { + "name": "priority", + "baseName": "priority", + "type": "number", + "format": "int32" + } +]; +var VariableUpdateScopeInput = _VariableUpdateScopeInput; + // models/VariableValue.ts var _VariableValue = class _VariableValue { static getAttributeTypeMap() { @@ -12999,6 +14390,12 @@ _VariableValue.attributeTypeMap = [ "type": "string", "format": "" }, + { + "name": "value_list", + "baseName": "value_list", + "type": "Array", + "format": "" + }, { "name": "org_identifier", "baseName": "org_identifier", @@ -13026,229 +14423,849 @@ _VariableValue.attributeTypeMap = [ ]; var VariableValue = _VariableValue; -// models/VariableValueInput.ts -var _VariableValueInput = class _VariableValueInput { +// models/VariableValues.ts +var _VariableValues = class _VariableValues { static getAttributeTypeMap() { - return _VariableValueInput.attributeTypeMap; + return _VariableValues.attributeTypeMap; } constructor() { } }; -_VariableValueInput.discriminator = void 0; -_VariableValueInput.attributeTypeMap = [ +_VariableValues.discriminator = void 0; +_VariableValues.attributeTypeMap = [ { - "name": "variable_identifier", - "baseName": "variable_identifier", + "name": "name", + "baseName": "name", "type": "string", "format": "" }, { - "name": "variable_values", - "baseName": "variable_values", - "type": "Array", + "name": "values", + "baseName": "values", + "type": "Array", "format": "" } ]; -var VariableValueInput = _VariableValueInput; +var VariableValues = _VariableValues; -// middleware.ts -var PromiseMiddlewareWrapper = class { - constructor(middleware) { - this.middleware = middleware; +// models/WebhookAuthApiKey.ts +var _WebhookAuthApiKey = class _WebhookAuthApiKey { + static getAttributeTypeMap() { + return _WebhookAuthApiKey.attributeTypeMap; } - pre(context) { - return from(this.middleware.pre(context)); + constructor() { } - post(context) { - return from(this.middleware.post(context)); +}; +_WebhookAuthApiKey.discriminator = void 0; +_WebhookAuthApiKey.attributeTypeMap = [ + { + "name": "key", + "baseName": "key", + "type": "string", + "format": "" + }, + { + "name": "value", + "baseName": "value", + "type": "string", + "format": "" + } +]; +var WebhookAuthApiKey = _WebhookAuthApiKey; + +// models/WebhookAuthApiKeyInput.ts +var _WebhookAuthApiKeyInput = class _WebhookAuthApiKeyInput { + static getAttributeTypeMap() { + return _WebhookAuthApiKeyInput.attributeTypeMap; + } + constructor() { } }; +_WebhookAuthApiKeyInput.discriminator = void 0; +_WebhookAuthApiKeyInput.attributeTypeMap = [ + { + "name": "key", + "baseName": "key", + "type": "string", + "format": "" + }, + { + "name": "value", + "baseName": "value", + "type": "string", + "format": "" + } +]; +var WebhookAuthApiKeyInput = _WebhookAuthApiKeyInput; -// servers.ts -var ServerConfiguration = class { - constructor(url, variableConfiguration) { - this.url = url; - this.variableConfiguration = variableConfiguration; +// models/WebhookAuthBasicAuth.ts +var _WebhookAuthBasicAuth = class _WebhookAuthBasicAuth { + static getAttributeTypeMap() { + return _WebhookAuthBasicAuth.attributeTypeMap; } - /** - * Sets the value of the variables of this server. Variables are included in - * the `url` of this ServerConfiguration in the form `{variableName}` - * - * @param variableConfiguration a partial variable configuration for the - * variables contained in the url - */ - setVariables(variableConfiguration) { - Object.assign(this.variableConfiguration, variableConfiguration); + constructor() { } - getConfiguration() { - return this.variableConfiguration; +}; +_WebhookAuthBasicAuth.discriminator = void 0; +_WebhookAuthBasicAuth.attributeTypeMap = [ + { + "name": "username", + "baseName": "username", + "type": "string", + "format": "" + }, + { + "name": "password", + "baseName": "password", + "type": "string", + "format": "" } - getUrl() { - let replacedUrl = this.url; - for (const key in this.variableConfiguration) { - var re = new RegExp("{" + key + "}", "g"); - replacedUrl = replacedUrl.replace(re, this.variableConfiguration[key]); - } - return replacedUrl; +]; +var WebhookAuthBasicAuth = _WebhookAuthBasicAuth; + +// models/WebhookAuthBasicAuthInput.ts +var _WebhookAuthBasicAuthInput = class _WebhookAuthBasicAuthInput { + static getAttributeTypeMap() { + return _WebhookAuthBasicAuthInput.attributeTypeMap; } - /** - * Creates a new request context for this server using the url with variables - * replaced with their respective values and the endpoint of the request appended. - * - * @param endpoint the endpoint to be queried on the server - * @param httpMethod httpMethod to be used - * - */ - makeRequestContext(endpoint, httpMethod) { - return new RequestContext2(this.getUrl() + endpoint, httpMethod); + constructor() { } }; -var server1 = new ServerConfiguration("{base-url}", { "base-url": "https://localhost:443" }); -var servers = [server1]; +_WebhookAuthBasicAuthInput.discriminator = void 0; +_WebhookAuthBasicAuthInput.attributeTypeMap = [ + { + "name": "username", + "baseName": "username", + "type": "string", + "format": "" + }, + { + "name": "password", + "baseName": "password", + "type": "string", + "format": "" + } +]; +var WebhookAuthBasicAuthInput = _WebhookAuthBasicAuthInput; -// configuration.ts -function createConfiguration(conf = {}) { - const configuration = { - baseServer: conf.baseServer !== void 0 ? conf.baseServer : server1, - httpApi: conf.httpApi || new IsomorphicFetchHttpLibrary(), - middleware: conf.middleware || [], - authMethods: configureAuthMethods(conf.authMethods) - }; - if (conf.promiseMiddleware) { - conf.promiseMiddleware.forEach( - (m) => configuration.middleware.push(new PromiseMiddlewareWrapper(m)) - ); +// models/WebhookAuthOAuth2.ts +var _WebhookAuthOAuth2 = class _WebhookAuthOAuth2 { + static getAttributeTypeMap() { + return _WebhookAuthOAuth2.attributeTypeMap; } - return configuration; -} + constructor() { + } +}; +_WebhookAuthOAuth2.discriminator = void 0; +_WebhookAuthOAuth2.attributeTypeMap = [ + { + "name": "authorization_url", + "baseName": "authorization_url", + "type": "string", + "format": "" + }, + { + "name": "client_id", + "baseName": "client_id", + "type": "string", + "format": "" + }, + { + "name": "client_secret", + "baseName": "client_secret", + "type": "string", + "format": "" + } +]; +var WebhookAuthOAuth2 = _WebhookAuthOAuth2; -// apis/exception.ts -var ApiException = class extends Error { - constructor(code, message, body, headers) { - super("HTTP-Code: " + code + "\nMessage: " + message + "\nBody: " + JSON.stringify(body) + "\nHeaders: " + JSON.stringify(headers)); - this.code = code; - this.body = body; - this.headers = headers; +// models/WebhookAuthOAuth2Input.ts +var _WebhookAuthOAuth2Input = class _WebhookAuthOAuth2Input { + static getAttributeTypeMap() { + return _WebhookAuthOAuth2Input.attributeTypeMap; + } + constructor() { } }; +_WebhookAuthOAuth2Input.discriminator = void 0; +_WebhookAuthOAuth2Input.attributeTypeMap = [ + { + "name": "authorization_url", + "baseName": "authorization_url", + "type": "string", + "format": "" + }, + { + "name": "client_id", + "baseName": "client_id", + "type": "string", + "format": "" + }, + { + "name": "client_secret", + "baseName": "client_secret", + "type": "string", + "format": "" + } +]; +var WebhookAuthOAuth2Input = _WebhookAuthOAuth2Input; -// apis/baseapi.ts -var BaseAPIRequestFactory = class { - constructor(configuration) { - this.configuration = configuration; +// models/WebhookAuthentication.ts +var _WebhookAuthentication = class _WebhookAuthentication { + static getAttributeTypeMap() { + return _WebhookAuthentication.attributeTypeMap; + } + constructor() { } }; -var RequiredError = class extends Error { - constructor(api, method, field) { - super("Required parameter " + field + " was null or undefined when calling " + api + "." + method + "."); - this.api = api; - this.method = method; - this.field = field; - this.name = "RequiredError"; +_WebhookAuthentication.discriminator = void 0; +_WebhookAuthentication.attributeTypeMap = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKey", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuth", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2", + "format": "" + } +]; +var WebhookAuthentication = _WebhookAuthentication; + +// models/WebhookAuthenticationInput.ts +var _WebhookAuthenticationInput = class _WebhookAuthenticationInput { + static getAttributeTypeMap() { + return _WebhookAuthenticationInput.attributeTypeMap; + } + constructor() { } }; +_WebhookAuthenticationInput.discriminator = void 0; +_WebhookAuthenticationInput.attributeTypeMap = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKeyInput", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuthInput", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2Input", + "format": "" + } +]; +var WebhookAuthenticationInput = _WebhookAuthenticationInput; -// models/ObjectSerializer.ts -var primitives = [ - "string", - "boolean", - "double", - "integer", - "long", - "float", - "number", - "any" +// models/WebhookDeleteFailure.ts +var _WebhookDeleteFailure = class _WebhookDeleteFailure { + static getAttributeTypeMap() { + return _WebhookDeleteFailure.attributeTypeMap; + } + constructor() { + } +}; +_WebhookDeleteFailure.discriminator = void 0; +_WebhookDeleteFailure.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "error", + "baseName": "error", + "type": "string", + "format": "" + } ]; -var supportedMediaTypes = { - "application/json": Infinity, - "application/octet-stream": 0, - "application/x-www-form-urlencoded": 0 +var WebhookDeleteFailure = _WebhookDeleteFailure; + +// models/WebhookDeleteResponse.ts +var _WebhookDeleteResponse = class _WebhookDeleteResponse { + static getAttributeTypeMap() { + return _WebhookDeleteResponse.attributeTypeMap; + } + constructor() { + } }; -var enumsMap = /* @__PURE__ */ new Set([ - "ActionConfigInputPositionEnum", - "ActionConfigInputCreatePositionEnum", - "AssociateMetadataInputTypeEnum", - "AssociateMetadataInputCreateTypeEnum", - "AuthorMetadataTypeInputTypeEnum", - "ColumnSecurityRuleGroupOperationOperationEnum", - "ConnectionConfigurationResponsePolicyProcessesEnum", - "ConnectionConfigurationResponseDataWarehouseTypeEnum", - "ConnectionConfigurationResponsePolicyTypeEnum", - "ConnectionConfigurationSearchRequestPolicyTypeEnum", - "CopyObjectRequestTypeEnum", - "CreateCalendarRequestCreationMethodEnum", - "CreateCalendarRequestCalendarTypeEnum", - "CreateCalendarRequestMonthOffsetEnum", - "CreateCalendarRequestStartDayOfWeekEnum", - "CreateConnectionConfigurationRequestAuthenticationTypeEnum", - "CreateConnectionConfigurationRequestPolicyTypeEnum", - "CreateConnectionConfigurationRequestPolicyProcessesEnum", - "CreateConnectionRequestDataWarehouseTypeEnum", - "CreateConnectionResponseDataWarehouseTypeEnum", - "CreateRoleRequestPrivilegesEnum", - "CreateScheduleRequestMetadataTypeEnum", - "CreateScheduleRequestFileFormatEnum", - "CreateScheduleRequestTimeZoneEnum", - "CreateScheduleRequestPdfOptionsPageSizeEnum", - "CreateUserGroupRequestPrivilegesEnum", - "CreateUserGroupRequestTypeEnum", - "CreateUserGroupRequestVisibilityEnum", - "CreateUserRequestAccountTypeEnum", - "CreateUserRequestAccountStatusEnum", - "CreateUserRequestVisibilityEnum", - "CreateUserRequestPreferredLocaleEnum", - "CreateVariableRequestTypeEnum", - "CustomActionMetadataTypeInputTypeEnum", - "DeleteMetadataTypeInputTypeEnum", - "DeployCommitRequestDeployTypeEnum", - "DeployCommitRequestDeployPolicyEnum", - "ExcludeMetadataListItemInputTypeEnum", - "ExportAnswerReportRequestFileFormatEnum", - "ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum", - "ExportAnswerReportRequestRegionalSettingsUserLocaleEnum", - "ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum", - "ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum", - "ExportLiveboardReportRequestFileFormatEnum", - "ExportLiveboardReportRequestPdfOptionsPageOrientationEnum", - "ExportMetadataTMLBatchedRequestMetadataTypeEnum", - "ExportMetadataTMLBatchedRequestEdocFormatEnum", - "ExportMetadataTMLRequestEdocFormatEnum", - "ExportMetadataTMLRequestExportSchemaVersionEnum", - "ExportMetadataTypeInputTypeEnum", - "FavoriteMetadataInputTypeEnum", - "FavoriteMetadataItemTypeEnum", - "FetchAnswerDataRequestDataFormatEnum", - "FetchAsyncImportTaskStatusRequestTaskStatusEnum", - "FetchLiveboardDataRequestDataFormatEnum", - "FetchLogsRequestLogTypeEnum", - "FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum", - "FilterRulesOperatorEnum", - "GenerateCSVRequestCalendarTypeEnum", - "GenerateCSVRequestMonthOffsetEnum", - "GenerateCSVRequestStartDayOfWeekEnum", - "GetCustomAccessTokenRequestPersistOptionEnum", - "GroupsImportListInputPrivilegesEnum", - "GroupsImportListInputTypeEnum", - "GroupsImportListInputVisibilityEnum", - "HeaderUpdateInputTypeEnum", - "ImportEPackAsyncTaskStatusTaskStatusEnum", - "ImportEPackAsyncTaskStatusImportPolicyEnum", - "ImportMetadataTMLAsyncRequestImportPolicyEnum", - "ImportMetadataTMLRequestImportPolicyEnum", - "ImportUserAccountTypeEnum", - "ImportUserAccountStatusEnum", - "ImportUserVisibilityEnum", - "InputVariableValuePrincipalTypeEnum", - "JWTMetadataObjectTypeEnum", - "MetadataInputTypeEnum", - "MetadataListItemInputTypeEnum", - "MetadataListItemInputSubtypesEnum", - "MetadataObjectTypeEnum", - "MetadataResponseTypeEnum", - "MetadataSearchResponseMetadataTypeEnum", - "MetadataSearchSortOptionsFieldNameEnum", - "MetadataSearchSortOptionsOrderEnum", - "OrgResponseStatusEnum", +_WebhookDeleteResponse.discriminator = void 0; +_WebhookDeleteResponse.attributeTypeMap = [ + { + "name": "deleted_count", + "baseName": "deleted_count", + "type": "number", + "format": "int32" + }, + { + "name": "failed_count", + "baseName": "failed_count", + "type": "number", + "format": "int32" + }, + { + "name": "deleted_webhooks", + "baseName": "deleted_webhooks", + "type": "Array", + "format": "" + }, + { + "name": "failed_webhooks", + "baseName": "failed_webhooks", + "type": "Array", + "format": "" + } +]; +var WebhookDeleteResponse = _WebhookDeleteResponse; + +// models/WebhookOrg.ts +var _WebhookOrg = class _WebhookOrg { + static getAttributeTypeMap() { + return _WebhookOrg.attributeTypeMap; + } + constructor() { + } +}; +_WebhookOrg.discriminator = void 0; +_WebhookOrg.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } +]; +var WebhookOrg = _WebhookOrg; + +// models/WebhookPagination.ts +var _WebhookPagination = class _WebhookPagination { + static getAttributeTypeMap() { + return _WebhookPagination.attributeTypeMap; + } + constructor() { + } +}; +_WebhookPagination.discriminator = void 0; +_WebhookPagination.attributeTypeMap = [ + { + "name": "record_offset", + "baseName": "record_offset", + "type": "number", + "format": "int32" + }, + { + "name": "record_size", + "baseName": "record_size", + "type": "number", + "format": "int32" + }, + { + "name": "total_count", + "baseName": "total_count", + "type": "number", + "format": "int32" + }, + { + "name": "has_more", + "baseName": "has_more", + "type": "boolean", + "format": "" + } +]; +var WebhookPagination = _WebhookPagination; + +// models/WebhookResponse.ts +var _WebhookResponse = class _WebhookResponse { + static getAttributeTypeMap() { + return _WebhookResponse.attributeTypeMap; + } + constructor() { + } +}; +_WebhookResponse.discriminator = void 0; +_WebhookResponse.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "org", + "baseName": "org", + "type": "WebhookOrg", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "WebhookAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "WebhookSignatureVerification", + "format": "" + }, + { + "name": "creation_time_in_millis", + "baseName": "creation_time_in_millis", + "type": "number", + "format": "float" + }, + { + "name": "modification_time_in_millis", + "baseName": "modification_time_in_millis", + "type": "number", + "format": "float" + }, + { + "name": "created_by", + "baseName": "created_by", + "type": "WebhookUser", + "format": "" + }, + { + "name": "last_modified_by", + "baseName": "last_modified_by", + "type": "WebhookUser", + "format": "" + } +]; +var WebhookResponse = _WebhookResponse; + +// models/WebhookSearchResponse.ts +var _WebhookSearchResponse = class _WebhookSearchResponse { + static getAttributeTypeMap() { + return _WebhookSearchResponse.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSearchResponse.discriminator = void 0; +_WebhookSearchResponse.attributeTypeMap = [ + { + "name": "webhooks", + "baseName": "webhooks", + "type": "Array", + "format": "" + }, + { + "name": "pagination", + "baseName": "pagination", + "type": "WebhookPagination", + "format": "" + } +]; +var WebhookSearchResponse = _WebhookSearchResponse; + +// models/WebhookSignatureVerification.ts +var _WebhookSignatureVerification = class _WebhookSignatureVerification { + static getAttributeTypeMap() { + return _WebhookSignatureVerification.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSignatureVerification.discriminator = void 0; +_WebhookSignatureVerification.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "WebhookSignatureVerificationTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "WebhookSignatureVerificationAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } +]; +var WebhookSignatureVerification = _WebhookSignatureVerification; + +// models/WebhookSignatureVerificationInput.ts +var _WebhookSignatureVerificationInput = class _WebhookSignatureVerificationInput { + static getAttributeTypeMap() { + return _WebhookSignatureVerificationInput.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSignatureVerificationInput.discriminator = void 0; +_WebhookSignatureVerificationInput.attributeTypeMap = [ + { + "name": "type", + "baseName": "type", + "type": "WebhookSignatureVerificationInputTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "WebhookSignatureVerificationInputAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } +]; +var WebhookSignatureVerificationInput = _WebhookSignatureVerificationInput; + +// models/WebhookSortOptionsInput.ts +var _WebhookSortOptionsInput = class _WebhookSortOptionsInput { + static getAttributeTypeMap() { + return _WebhookSortOptionsInput.attributeTypeMap; + } + constructor() { + } +}; +_WebhookSortOptionsInput.discriminator = void 0; +_WebhookSortOptionsInput.attributeTypeMap = [ + { + "name": "field_name", + "baseName": "field_name", + "type": "WebhookSortOptionsInputFieldNameEnum", + "format": "" + }, + { + "name": "order", + "baseName": "order", + "type": "WebhookSortOptionsInputOrderEnum", + "format": "" + } +]; +var WebhookSortOptionsInput = _WebhookSortOptionsInput; + +// models/WebhookUser.ts +var _WebhookUser = class _WebhookUser { + static getAttributeTypeMap() { + return _WebhookUser.attributeTypeMap; + } + constructor() { + } +}; +_WebhookUser.discriminator = void 0; +_WebhookUser.attributeTypeMap = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } +]; +var WebhookUser = _WebhookUser; + +// middleware.ts +var PromiseMiddlewareWrapper = class { + constructor(middleware) { + this.middleware = middleware; + } + pre(context) { + return from(this.middleware.pre(context)); + } + post(context) { + return from(this.middleware.post(context)); + } +}; + +// servers.ts +var ServerConfiguration = class { + constructor(url, variableConfiguration) { + this.url = url; + this.variableConfiguration = variableConfiguration; + } + /** + * Sets the value of the variables of this server. Variables are included in + * the `url` of this ServerConfiguration in the form `{variableName}` + * + * @param variableConfiguration a partial variable configuration for the + * variables contained in the url + */ + setVariables(variableConfiguration) { + Object.assign(this.variableConfiguration, variableConfiguration); + } + getConfiguration() { + return this.variableConfiguration; + } + getUrl() { + let replacedUrl = this.url; + for (const key in this.variableConfiguration) { + var re = new RegExp("{" + key + "}", "g"); + replacedUrl = replacedUrl.replace(re, this.variableConfiguration[key]); + } + return replacedUrl; + } + /** + * Creates a new request context for this server using the url with variables + * replaced with their respective values and the endpoint of the request appended. + * + * @param endpoint the endpoint to be queried on the server + * @param httpMethod httpMethod to be used + * + */ + makeRequestContext(endpoint, httpMethod) { + return new RequestContext2(this.getUrl() + endpoint, httpMethod); + } +}; +var server1 = new ServerConfiguration("{base-url}", { "base-url": "https://localhost:443" }); +var servers = [server1]; + +// configuration.ts +function createConfiguration(conf = {}) { + const configuration = { + baseServer: conf.baseServer !== void 0 ? conf.baseServer : server1, + httpApi: conf.httpApi || new IsomorphicFetchHttpLibrary(), + middleware: conf.middleware || [], + authMethods: configureAuthMethods(conf.authMethods) + }; + if (conf.promiseMiddleware) { + conf.promiseMiddleware.forEach( + (m) => configuration.middleware.push(new PromiseMiddlewareWrapper(m)) + ); + } + return configuration; +} + +// apis/exception.ts +var ApiException = class extends Error { + constructor(code, message, body, headers) { + super("HTTP-Code: " + code + "\nMessage: " + message + "\nBody: " + JSON.stringify(body) + "\nHeaders: " + JSON.stringify(headers)); + this.code = code; + this.body = body; + this.headers = headers; + } +}; + +// apis/baseapi.ts +var BaseAPIRequestFactory = class { + constructor(configuration) { + this.configuration = configuration; + } +}; +var RequiredError = class extends Error { + constructor(api, method, field) { + super("Required parameter " + field + " was null or undefined when calling " + api + "." + method + "."); + this.api = api; + this.method = method; + this.field = field; + this.name = "RequiredError"; + } +}; + +// models/ObjectSerializer.ts +var primitives = [ + "string", + "boolean", + "double", + "integer", + "long", + "float", + "number", + "any" +]; +var supportedMediaTypes = { + "application/json": Infinity, + "application/octet-stream": 0, + "application/x-www-form-urlencoded": 0 +}; +var enumsMap = /* @__PURE__ */ new Set([ + "ActionConfigInputPositionEnum", + "ActionConfigInputCreatePositionEnum", + "AssociateMetadataInputTypeEnum", + "AssociateMetadataInputCreateTypeEnum", + "AuthorMetadataTypeInputTypeEnum", + "ColumnSecurityRuleGroupOperationOperationEnum", + "ConnectionConfigurationResponsePolicyProcessesEnum", + "ConnectionConfigurationResponseDataWarehouseTypeEnum", + "ConnectionConfigurationResponsePolicyTypeEnum", + "ConnectionConfigurationSearchRequestPolicyTypeEnum", + "ContextPayloadV2InputTypeEnum", + "CopyObjectRequestTypeEnum", + "CreateAgentConversationRequestMetadataContextTypeEnum", + "CreateCalendarRequestCreationMethodEnum", + "CreateCalendarRequestCalendarTypeEnum", + "CreateCalendarRequestMonthOffsetEnum", + "CreateCalendarRequestStartDayOfWeekEnum", + "CreateConnectionConfigurationRequestAuthenticationTypeEnum", + "CreateConnectionConfigurationRequestPolicyTypeEnum", + "CreateConnectionConfigurationRequestPolicyProcessesEnum", + "CreateConnectionRequestDataWarehouseTypeEnum", + "CreateConnectionResponseDataWarehouseTypeEnum", + "CreateRoleRequestPrivilegesEnum", + "CreateScheduleRequestMetadataTypeEnum", + "CreateScheduleRequestFileFormatEnum", + "CreateScheduleRequestTimeZoneEnum", + "CreateScheduleRequestPdfOptionsPageSizeEnum", + "CreateUserGroupRequestPrivilegesEnum", + "CreateUserGroupRequestTypeEnum", + "CreateUserGroupRequestVisibilityEnum", + "CreateUserRequestAccountTypeEnum", + "CreateUserRequestAccountStatusEnum", + "CreateUserRequestVisibilityEnum", + "CreateUserRequestPreferredLocaleEnum", + "CreateVariableRequestTypeEnum", + "CreateVariableRequestDataTypeEnum", + "CreateWebhookConfigurationRequestEventsEnum", + "CreateWebhookConfigurationRequestSignatureVerificationTypeEnum", + "CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum", + "CustomActionMetadataTypeInputTypeEnum", + "DeleteMetadataTypeInputTypeEnum", + "DeployCommitRequestDeployTypeEnum", + "DeployCommitRequestDeployPolicyEnum", + "EventChannelConfigEventTypeEnum", + "EventChannelConfigChannelsEnum", + "EventChannelConfigInputEventTypeEnum", + "EventChannelConfigInputChannelsEnum", + "ExcludeMetadataListItemInputTypeEnum", + "ExportAnswerReportRequestFileFormatEnum", + "ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum", + "ExportAnswerReportRequestRegionalSettingsUserLocaleEnum", + "ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum", + "ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum", + "ExportLiveboardReportRequestFileFormatEnum", + "ExportLiveboardReportRequestPdfOptionsPageOrientationEnum", + "ExportMetadataTMLBatchedRequestMetadataTypeEnum", + "ExportMetadataTMLBatchedRequestEdocFormatEnum", + "ExportMetadataTMLRequestEdocFormatEnum", + "ExportMetadataTMLRequestExportSchemaVersionEnum", + "ExportMetadataTypeInputTypeEnum", + "FavoriteMetadataInputTypeEnum", + "FavoriteMetadataItemTypeEnum", + "FetchAnswerDataRequestDataFormatEnum", + "FetchAsyncImportTaskStatusRequestTaskStatusEnum", + "FetchLiveboardDataRequestDataFormatEnum", + "FetchLogsRequestLogTypeEnum", + "FetchPermissionsOfPrincipalsRequestDefaultMetadataTypeEnum", + "FilterRulesOperatorEnum", + "GenerateCSVRequestCalendarTypeEnum", + "GenerateCSVRequestMonthOffsetEnum", + "GenerateCSVRequestStartDayOfWeekEnum", + "GetCustomAccessTokenRequestPersistOptionEnum", + "GroupsImportListInputPrivilegesEnum", + "GroupsImportListInputTypeEnum", + "GroupsImportListInputVisibilityEnum", + "HeaderUpdateInputTypeEnum", + "ImportEPackAsyncTaskStatusTaskStatusEnum", + "ImportEPackAsyncTaskStatusImportPolicyEnum", + "ImportMetadataTMLAsyncRequestImportPolicyEnum", + "ImportMetadataTMLRequestImportPolicyEnum", + "ImportUserAccountTypeEnum", + "ImportUserAccountStatusEnum", + "ImportUserVisibilityEnum", + "JWTMetadataObjectTypeEnum", + "MetadataInputTypeEnum", + "MetadataListItemInputTypeEnum", + "MetadataListItemInputSubtypesEnum", + "MetadataObjectTypeEnum", + "MetadataResponseTypeEnum", + "MetadataSearchResponseMetadataTypeEnum", + "MetadataSearchSortOptionsFieldNameEnum", + "MetadataSearchSortOptionsOrderEnum", + "NLInstructionsInfoScopeEnum", + "NLInstructionsInfoInputScopeEnum", + "OrgChannelConfigInputOperationEnum", + "OrgChannelConfigInputResetEventsEnum", + "OrgPreferenceSearchCriteriaInputEventTypesEnum", + "OrgResponseStatusEnum", "OrgResponseVisibilityEnum", "ParameterizeMetadataRequestMetadataTypeEnum", "ParameterizeMetadataRequestFieldTypeEnum", @@ -13273,6 +15290,7 @@ var enumsMap = /* @__PURE__ */ new Set([ "SearchCalendarsRequestSortOptionsFieldNameEnum", "SearchCalendarsRequestSortOptionsOrderEnum", "SearchCommitsRequestMetadataTypeEnum", + "SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum", "SearchConnectionRequestDataWarehouseTypesEnum", "SearchConnectionRequestDataWarehouseObjectTypeEnum", "SearchConnectionRequestAuthenticationTypeEnum", @@ -13302,7 +15320,10 @@ var enumsMap = /* @__PURE__ */ new Set([ "SearchUsersRequestAccountStatusEnum", "SearchUsersRequestSortOptionsFieldNameEnum", "SearchUsersRequestSortOptionsOrderEnum", - "SearchVariablesRequestOutputFormatEnum", + "SearchVariablesRequestResponseContentEnum", + "SearchWebhookConfigurationsRequestEventTypeEnum", + "SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum", + "SearchWebhookConfigurationsRequestSortOptionsOrderEnum", "ShareMetadataRequestMetadataTypeEnum", "ShareMetadataTypeInputTypeEnum", "SharePermissionsInputShareModeEnum", @@ -13342,8 +15363,7 @@ var enumsMap = /* @__PURE__ */ new Set([ "UpdateUserRequestAccountTypeEnum", "UpdateUserRequestOperationEnum", "UpdateUserRequestPreferredLocaleEnum", - "UpdateVariableRequestOperationEnum", - "UpdateVariableValuesRequestOperationEnum", + "UpdateWebhookConfigurationRequestEventsEnum", "UserVisibilityEnum", "UserAccountTypeEnum", "UserAccountStatusEnum", @@ -13352,11 +15372,22 @@ var enumsMap = /* @__PURE__ */ new Set([ "UserGroupResponseTypeEnum", "UserGroupResponseVisibilityEnum", "UserObjectTypeEnum", + "ValueScopeInputPrincipalTypeEnum", "VariableVariableTypeEnum", "VariableDetailInputTypeEnum", - "VariableValuePrincipalTypeEnum" + "VariableUpdateAssignmentInputOperationEnum", + "VariableUpdateScopeInputPrincipalTypeEnum", + "VariableValuePrincipalTypeEnum", + "WebhookResponseEventsEnum", + "WebhookSignatureVerificationTypeEnum", + "WebhookSignatureVerificationAlgorithmEnum", + "WebhookSignatureVerificationInputTypeEnum", + "WebhookSignatureVerificationInputAlgorithmEnum", + "WebhookSortOptionsInputFieldNameEnum", + "WebhookSortOptionsInputOrderEnum" ]); var typeMap = { + "AIContext": AIContext, "APIKey": APIKey, "APIKeyInput": APIKeyInput, "AccessToken": AccessToken, @@ -13367,7 +15398,9 @@ var typeMap = { "ActionDetailsInput": ActionDetailsInput, "ActionDetailsInputCreate": ActionDetailsInputCreate, "ActivateUserRequest": ActivateUserRequest, + "AgentConversation": AgentConversation, "AnswerContent": AnswerContent, + "AnswerContextInput": AnswerContextInput, "AnswerDataResponse": AnswerDataResponse, "AssignChangeAuthorRequest": AssignChangeAuthorRequest, "AssignTagRequest": AssignTagRequest, @@ -13399,12 +15432,19 @@ var typeMap = { "CommitHistoryResponse": CommitHistoryResponse, "CommitResponse": CommitResponse, "CommiterType": CommiterType, + "CommunicationChannelPreferencesResponse": CommunicationChannelPreferencesResponse, + "ConfigureCommunicationChannelPreferencesRequest": ConfigureCommunicationChannelPreferencesRequest, "ConnectionConfigurationResponse": ConnectionConfigurationResponse, "ConnectionConfigurationSearchRequest": ConnectionConfigurationSearchRequest, "ConnectionInput": ConnectionInput, + "ContextPayloadV2Input": ContextPayloadV2Input, "Conversation": Conversation, + "ConversationSettingsInput": ConversationSettingsInput, "ConvertWorksheetToModelRequest": ConvertWorksheetToModelRequest, "CopyObjectRequest": CopyObjectRequest, + "CreateAgentConversationRequest": CreateAgentConversationRequest, + "CreateAgentConversationRequestConversationSettings": CreateAgentConversationRequestConversationSettings, + "CreateAgentConversationRequestMetadataContext": CreateAgentConversationRequestMetadataContext, "CreateCalendarRequest": CreateCalendarRequest, "CreateCalendarRequestTableReference": CreateCalendarRequestTableReference, "CreateConfigRequest": CreateConfigRequest, @@ -13429,9 +15469,14 @@ var typeMap = { "CreateUserGroupRequest": CreateUserGroupRequest, "CreateUserRequest": CreateUserRequest, "CreateVariableRequest": CreateVariableRequest, + "CreateWebhookConfigurationRequest": CreateWebhookConfigurationRequest, + "CreateWebhookConfigurationRequestAuthentication": CreateWebhookConfigurationRequestAuthentication, + "CreateWebhookConfigurationRequestSignatureVerification": CreateWebhookConfigurationRequestSignatureVerification, "CronExpression": CronExpression, "CronExpressionInput": CronExpressionInput, "CustomActionMetadataTypeInput": CustomActionMetadataTypeInput, + "DataSource": DataSource, + "DataSourceContextInput": DataSourceContextInput, "DataWarehouseObjectInput": DataWarehouseObjectInput, "DataWarehouseObjects": DataWarehouseObjects, "Database": Database, @@ -13447,12 +15492,21 @@ var typeMap = { "DeleteMetadataRequest": DeleteMetadataRequest, "DeleteMetadataTypeInput": DeleteMetadataTypeInput, "DeleteOrgEmailCustomizationRequest": DeleteOrgEmailCustomizationRequest, + "DeleteWebhookConfigurationsRequest": DeleteWebhookConfigurationsRequest, "DeployCommitRequest": DeployCommitRequest, "DeployResponse": DeployResponse, + "EntityHeader": EntityHeader, "ErrorResponse": ErrorResponse, + "EurekaDataSourceSuggestionResponse": EurekaDataSourceSuggestionResponse, "EurekaDecomposeQueryResponse": EurekaDecomposeQueryResponse, + "EurekaGetNLInstructionsResponse": EurekaGetNLInstructionsResponse, + "EurekaGetRelevantQuestionsResponse": EurekaGetRelevantQuestionsResponse, "EurekaLLMDecomposeQueryResponse": EurekaLLMDecomposeQueryResponse, "EurekaLLMSuggestedQuery": EurekaLLMSuggestedQuery, + "EurekaRelevantQuestion": EurekaRelevantQuestion, + "EurekaSetNLInstructionsResponse": EurekaSetNLInstructionsResponse, + "EventChannelConfig": EventChannelConfig, + "EventChannelConfigInput": EventChannelConfigInput, "ExcludeMetadataListItemInput": ExcludeMetadataListItemInput, "ExportAnswerReportRequest": ExportAnswerReportRequest, "ExportAnswerReportRequestRegionalSettings": ExportAnswerReportRequestRegionalSettings, @@ -13486,9 +15540,14 @@ var typeMap = { "GenericInfo": GenericInfo, "GetAsyncImportStatusResponse": GetAsyncImportStatusResponse, "GetCustomAccessTokenRequest": GetCustomAccessTokenRequest, + "GetDataSourceSuggestionsRequest": GetDataSourceSuggestionsRequest, "GetFullAccessTokenRequest": GetFullAccessTokenRequest, "GetFullAccessTokenRequestUserParameters": GetFullAccessTokenRequestUserParameters, + "GetNLInstructionsRequest": GetNLInstructionsRequest, "GetObjectAccessTokenRequest": GetObjectAccessTokenRequest, + "GetRelevantQuestionsRequest": GetRelevantQuestionsRequest, + "GetRelevantQuestionsRequestAiContext": GetRelevantQuestionsRequestAiContext, + "GetRelevantQuestionsRequestMetadataContext": GetRelevantQuestionsRequestMetadataContext, "GetTokenResponse": GetTokenResponse, "GroupObject": GroupObject, "GroupsImportListInput": GroupsImportListInput, @@ -13504,11 +15563,11 @@ var typeMap = { "ImportUsersRequest": ImportUsersRequest, "ImportUsersResponse": ImportUsersResponse, "InputEurekaNLSRequest": InputEurekaNLSRequest, - "InputVariableValue": InputVariableValue, "JWTMetadataObject": JWTMetadataObject, "JWTParameter": JWTParameter, "JWTUserOptions": JWTUserOptions, "JWTUserOptionsFull": JWTUserOptionsFull, + "LBContextInput": LBContextInput, "LiveboardContent": LiveboardContent, "LiveboardDataResponse": LiveboardDataResponse, "LiveboardOptions": LiveboardOptions, @@ -13516,6 +15575,7 @@ var typeMap = { "LogResponse": LogResponse, "LoginRequest": LoginRequest, "MetadataAssociationItem": MetadataAssociationItem, + "MetadataContext": MetadataContext, "MetadataInput": MetadataInput, "MetadataListItemInput": MetadataListItemInput, "MetadataObject": MetadataObject, @@ -13523,9 +15583,15 @@ var typeMap = { "MetadataSearchResponse": MetadataSearchResponse, "MetadataSearchSortOptions": MetadataSearchSortOptions, "ModelTableList": ModelTableList, + "NLInstructionsInfo": NLInstructionsInfo, + "NLInstructionsInfoInput": NLInstructionsInfoInput, "ObjectIDAndName": ObjectIDAndName, "Org": Org, + "OrgChannelConfigInput": OrgChannelConfigInput, + "OrgChannelConfigResponse": OrgChannelConfigResponse, + "OrgDetails": OrgDetails, "OrgInfo": OrgInfo, + "OrgPreferenceSearchCriteriaInput": OrgPreferenceSearchCriteriaInput, "OrgResponse": OrgResponse, "OrgType": OrgType, "ParameterValues": ParameterValues, @@ -13587,6 +15653,7 @@ var typeMap = { "SearchCalendarsRequest": SearchCalendarsRequest, "SearchCalendarsRequestSortOptions": SearchCalendarsRequestSortOptions, "SearchCommitsRequest": SearchCommitsRequest, + "SearchCommunicationChannelPreferencesRequest": SearchCommunicationChannelPreferencesRequest, "SearchConfigRequest": SearchConfigRequest, "SearchConnectionRequest": SearchConnectionRequest, "SearchConnectionRequestSortOptions": SearchConnectionRequestSortOptions, @@ -13611,7 +15678,13 @@ var typeMap = { "SearchUsersRequest": SearchUsersRequest, "SearchUsersRequestSortOptions": SearchUsersRequestSortOptions, "SearchVariablesRequest": SearchVariablesRequest, + "SearchWebhookConfigurationsRequest": SearchWebhookConfigurationsRequest, + "SearchWebhookConfigurationsRequestSortOptions": SearchWebhookConfigurationsRequestSortOptions, + "SendAgentMessageRequest": SendAgentMessageRequest, + "SendAgentMessageResponse": SendAgentMessageResponse, + "SendAgentMessageStreamingRequest": SendAgentMessageStreamingRequest, "SendMessageRequest": SendMessageRequest, + "SetNLInstructionsRequest": SetNLInstructionsRequest, "ShareMetadataRequest": ShareMetadataRequest, "ShareMetadataTypeInput": ShareMetadataTypeInput, "SharePermissionsInput": SharePermissionsInput, @@ -13664,6 +15737,7 @@ var typeMap = { "UpdateUserRequest": UpdateUserRequest, "UpdateVariableRequest": UpdateVariableRequest, "UpdateVariableValuesRequest": UpdateVariableValuesRequest, + "UpdateWebhookConfigurationRequest": UpdateWebhookConfigurationRequest, "User": User, "UserGroup": UserGroup, "UserGroupResponse": UserGroupResponse, @@ -13673,10 +15747,31 @@ var typeMap = { "UserPrincipal": UserPrincipal, "ValidateMergeRequest": ValidateMergeRequest, "ValidateTokenRequest": ValidateTokenRequest, + "ValueScopeInput": ValueScopeInput, "Variable": Variable, "VariableDetailInput": VariableDetailInput, + "VariableUpdateAssignmentInput": VariableUpdateAssignmentInput, + "VariableUpdateScopeInput": VariableUpdateScopeInput, "VariableValue": VariableValue, - "VariableValueInput": VariableValueInput + "VariableValues": VariableValues, + "WebhookAuthApiKey": WebhookAuthApiKey, + "WebhookAuthApiKeyInput": WebhookAuthApiKeyInput, + "WebhookAuthBasicAuth": WebhookAuthBasicAuth, + "WebhookAuthBasicAuthInput": WebhookAuthBasicAuthInput, + "WebhookAuthOAuth2": WebhookAuthOAuth2, + "WebhookAuthOAuth2Input": WebhookAuthOAuth2Input, + "WebhookAuthentication": WebhookAuthentication, + "WebhookAuthenticationInput": WebhookAuthenticationInput, + "WebhookDeleteFailure": WebhookDeleteFailure, + "WebhookDeleteResponse": WebhookDeleteResponse, + "WebhookOrg": WebhookOrg, + "WebhookPagination": WebhookPagination, + "WebhookResponse": WebhookResponse, + "WebhookSearchResponse": WebhookSearchResponse, + "WebhookSignatureVerification": WebhookSignatureVerification, + "WebhookSignatureVerificationInput": WebhookSignatureVerificationInput, + "WebhookSortOptionsInput": WebhookSortOptionsInput, + "WebhookUser": WebhookUser }; var ObjectSerializer = class _ObjectSerializer { static findCorrectType(data, expectedType) { @@ -13877,6 +15972,43 @@ function canConsumeForm(contentTypes) { // apis/AIApi.ts var AIApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createAgentConversationRequest === null || createAgentConversationRequest === void 0) { + throw new RequiredError("AIApi", "createAgentConversation", "createAgentConversationRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/conversation/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createAgentConversationRequest, "CreateAgentConversationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } /** * 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 @@ -13891,7 +16023,8 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/ai/conversation/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -13914,26 +16047,27 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.7.0.cl or later - * @param queryGetDecomposedQueryRequest + * 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 */ - queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { - throw new RequiredError("AIApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); + if (getDataSourceSuggestionsRequest === null || getDataSourceSuggestionsRequest === void 0) { + throw new RequiredError("AIApi", "getDataSourceSuggestions", "getDataSourceSuggestionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/analytical-questions"; + const localVarPath = "/api/rest/2.0/ai/data-source-suggestions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), + ObjectSerializer.serialize(getDataSourceSuggestionsRequest, "GetDataSourceSuggestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -13950,30 +16084,27 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest */ - sendMessage(conversationIdentifier, sendMessageRequest, _options) { + getNLInstructions(getNLInstructionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (conversationIdentifier === null || conversationIdentifier === void 0) { - throw new RequiredError("AIApi", "sendMessage", "conversationIdentifier"); + if (getNLInstructionsRequest === null || getNLInstructionsRequest === void 0) { + throw new RequiredError("AIApi", "getNLInstructions", "getNLInstructionsRequest"); } - if (sendMessageRequest === null || sendMessageRequest === void 0) { - throw new RequiredError("AIApi", "sendMessage", "sendMessageRequest"); - } - const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const localVarPath = "/api/rest/2.0/ai/instructions/get"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + ObjectSerializer.serialize(getNLInstructionsRequest, "GetNLInstructionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -13990,26 +16121,27 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * 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 */ - singleAnswer(singleAnswerRequest, _options) { + getRelevantQuestions(getRelevantQuestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (singleAnswerRequest === null || singleAnswerRequest === void 0) { - throw new RequiredError("AIApi", "singleAnswer", "singleAnswerRequest"); + if (getRelevantQuestionsRequest === null || getRelevantQuestionsRequest === void 0) { + throw new RequiredError("AIApi", "getRelevantQuestions", "getRelevantQuestionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/answer/create"; + const localVarPath = "/api/rest/2.0/ai/relevant-questions/"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + ObjectSerializer.serialize(getRelevantQuestionsRequest, "GetRelevantQuestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14025,294 +16157,36 @@ var AIApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var AIApiResponseProcessor = class { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConversation - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.7.0.cl or later + * @param queryGetDecomposedQueryRequest */ - createConversation(response) { + queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { + throw new RequiredError("AIApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to queryGetDecomposedQuery - * @throws ApiException if the response code was not in [200, 299] - */ - queryGetDecomposedQuery(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to sendMessage - * @throws ApiException if the response code was not in [200, 299] - */ - sendMessage(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to singleAnswer - * @throws ApiException if the response code was not in [200, 299] - */ - singleAnswer(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseMessage", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseMessage", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseMessage", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } -}; - -// apis/AuthenticationApi.ts -var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { - /** - * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. - */ - getCurrentUserInfo(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/user"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request - */ - getCurrentUserToken(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/token"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * 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. - * @param getCustomAccessTokenRequest - */ - getCustomAccessToken(getCustomAccessTokenRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); - } - const localVarPath = "/api/rest/2.0/auth/token/custom"; + const localVarPath = "/api/rest/2.0/ai/analytical-questions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), + ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -14321,29 +16195,39 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getFullAccessTokenRequest + * 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) + * @param sendAgentMessageRequest */ - getFullAccessToken(getFullAccessTokenRequest, _options) { + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "getFullAccessToken", "getFullAccessTokenRequest"); + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("AIApi", "sendAgentMessage", "conversationIdentifier"); } - const localVarPath = "/api/rest/2.0/auth/token/full"; + if (sendAgentMessageRequest === null || sendAgentMessageRequest === void 0) { + throw new RequiredError("AIApi", "sendAgentMessage", "sendAgentMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), + ObjectSerializer.serialize(sendAgentMessageRequest, "SendAgentMessageRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -14352,29 +16236,35 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getObjectAccessTokenRequest + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest */ - getObjectAccessToken(getObjectAccessTokenRequest, _options) { + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); + if (sendAgentMessageStreamingRequest === null || sendAgentMessageStreamingRequest === void 0) { + throw new RequiredError("AIApi", "sendAgentMessageStreaming", "sendAgentMessageStreamingRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/object"; + const localVarPath = "/api/rest/2.0/ai/agent/converse/sse"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + ObjectSerializer.serialize(sendAgentMessageStreamingRequest, "SendAgentMessageStreamingRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -14383,26 +16273,31 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. - * @param loginRequest + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest */ - login(loginRequest, _options) { + sendMessage(conversationIdentifier, sendMessageRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (loginRequest === null || loginRequest === void 0) { - throw new RequiredError("AuthenticationApi", "login", "loginRequest"); + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("AIApi", "sendMessage", "conversationIdentifier"); } - const localVarPath = "/api/rest/2.0/auth/session/login"; + if (sendMessageRequest === null || sendMessageRequest === void 0) { + throw new RequiredError("AIApi", "sendMessage", "sendMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), + ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14419,49 +16314,27 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Logs out a user from their current session. - */ - logout(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/logout"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). - * @param revokeTokenRequest + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest */ - revokeToken(revokeTokenRequest, _options) { + setNLInstructions(setNLInstructionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (revokeTokenRequest === null || revokeTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "revokeToken", "revokeTokenRequest"); + if (setNLInstructionsRequest === null || setNLInstructionsRequest === void 0) { + throw new RequiredError("AIApi", "setNLInstructions", "setNLInstructionsRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/revoke"; + const localVarPath = "/api/rest/2.0/ai/instructions/set"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), + ObjectSerializer.serialize(setNLInstructionsRequest, "SetNLInstructionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14478,26 +16351,27 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). - * @param validateTokenRequest + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest */ - validateToken(validateTokenRequest, _options) { + singleAnswer(singleAnswerRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (validateTokenRequest === null || validateTokenRequest === void 0) { - throw new RequiredError("AuthenticationApi", "validateToken", "validateTokenRequest"); + if (singleAnswerRequest === null || singleAnswerRequest === void 0) { + throw new RequiredError("AIApi", "singleAnswer", "singleAnswerRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/validate"; + const localVarPath = "/api/rest/2.0/ai/answer/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), + ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -14514,48 +16388,40 @@ var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var AuthenticationApiResponseProcessor = class { +var AIApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserInfo + * @params response Response returned by the server for a request to createAgentConversation * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserInfo(response) { + createAgentConversation(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "AgentConversation", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "AgentConversation", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14563,12 +16429,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "AgentConversation", "" ); return body; @@ -14580,43 +16446,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserToken + * @params response Response returned by the server for a request to createConversation * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserToken(response) { + createConversation(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", + "Conversation", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "Conversation", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14624,12 +16482,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", + "Conversation", "" ); return body; @@ -14641,43 +16499,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCustomAccessToken + * @params response Response returned by the server for a request to getDataSourceSuggestions * @throws ApiException if the response code was not in [200, 299] */ - getCustomAccessToken(response) { + getDataSourceSuggestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaDataSourceSuggestionResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDataSourceSuggestionResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14685,12 +16535,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaDataSourceSuggestionResponse", "" ); return body; @@ -14702,43 +16552,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getFullAccessToken + * @params response Response returned by the server for a request to getNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - getFullAccessToken(response) { + getNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetNLInstructionsResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaGetNLInstructionsResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14746,12 +16588,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetNLInstructionsResponse", "" ); return body; @@ -14763,43 +16605,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getObjectAccessToken + * @params response Response returned by the server for a request to getRelevantQuestions * @throws ApiException if the response code was not in [200, 299] */ - getObjectAccessToken(response) { + getRelevantQuestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetRelevantQuestionsResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaGetRelevantQuestionsResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14807,12 +16641,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "EurekaGetRelevantQuestionsResponse", "" ); return body; @@ -14824,38 +16658,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to login + * @params response Response returned by the server for a request to queryGetDecomposedQuery * @throws ApiException if the response code was not in [200, 299] */ - login(response) { + queryGetDecomposedQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDecomposeQueryResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + return body; } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDecomposeQueryResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14863,12 +16694,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "EurekaDecomposeQueryResponse", "" ); return body; @@ -14880,38 +16711,35 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to logout + * @params response Response returned by the server for a request to sendAgentMessage * @throws ApiException if the response code was not in [200, 299] */ - logout(response) { + sendAgentMessage(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "any", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + return body; } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "any", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14919,12 +16747,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -14936,14 +16764,27 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to revokeToken + * @params response Response returned by the server for a request to sendAgentMessageStreaming * @throws ApiException if the response code was not in [200, 299] */ - revokeToken(response) { + sendAgentMessageStreaming(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14951,23 +16792,60 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendMessage + * @throws ApiException if the response code was not in [200, 299] + */ + sendMessage(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -14975,12 +16853,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -14992,16 +16870,24 @@ var AuthenticationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateToken + * @params response Response returned by the server for a request to setNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - validateToken(response) { + setNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "TokenValidationResponse", + "EurekaSetNLInstructionsResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -15012,23 +16898,60 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaSetNLInstructionsResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to singleAnswer + * @throws ApiException if the response code was not in [200, 299] + */ + singleAnswer(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseMessage", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseMessage", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15036,12 +16959,12 @@ var AuthenticationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "TokenValidationResponse", + "ResponseMessage", "" ); return body; @@ -15051,37 +16974,113 @@ var AuthenticationApiResponseProcessor = class { } }; -// apis/ConnectionConfigurationsApi.ts -var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/AuthenticationApi.ts +var AuthenticationApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. - * @param connectionConfigurationSearchRequest + * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. */ - connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { + getCurrentUserInfo(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); + const localVarPath = "/api/rest/2.0/auth/session/user"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/connection-configurations/search"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request + */ + getCurrentUserToken(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/auth/session/token"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param getCustomAccessTokenRequest + */ + getCustomAccessToken(getCustomAccessTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/custom"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), + ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getFullAccessTokenRequest + */ + getFullAccessToken(getFullAccessTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "getFullAccessToken", "getFullAccessTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/full"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -15090,26 +17089,59 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. - * @param createConnectionConfigurationRequest + * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getObjectAccessTokenRequest */ - createConnectionConfiguration(createConnectionConfigurationRequest, _options) { + getObjectAccessToken(getObjectAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); + if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/create"; + const localVarPath = "/api/rest/2.0/auth/token/object"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. + * @param loginRequest + */ + login(loginRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (loginRequest === null || loginRequest === void 0) { + throw new RequiredError("AuthenticationApi", "login", "loginRequest"); + } + const localVarPath = "/api/rest/2.0/auth/session/login"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -15126,26 +17158,51 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } /** - * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - * @param deleteConnectionConfigurationRequest + * Version: 9.0.0.cl or later Logs out a user from their current session. */ - deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { + logout(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); + const localVarPath = "/api/rest/2.0/auth/session/logout"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/connection-configurations/delete"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). + * @param revokeTokenRequest + */ + revokeToken(revokeTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (revokeTokenRequest === null || revokeTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "revokeToken", "revokeTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/revoke"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -15162,30 +17219,27 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. - * @param configurationIdentifier Unique ID or name of the configuration. - * @param updateConnectionConfigurationRequest + * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). + * @param validateTokenRequest */ - updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + validateToken(validateTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (configurationIdentifier === null || configurationIdentifier === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "configurationIdentifier"); - } - if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { - throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + if (validateTokenRequest === null || validateTokenRequest === void 0) { + throw new RequiredError("AuthenticationApi", "validateToken", "validateTokenRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const localVarPath = "/api/rest/2.0/auth/token/validate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -15202,21 +17256,21 @@ var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFact }); } }; -var ConnectionConfigurationsApiResponseProcessor = class { +var AuthenticationApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to connectionConfigurationSearch + * @params response Response returned by the server for a request to getCurrentUserInfo * @throws ApiException if the response code was not in [200, 299] */ - connectionConfigurationSearch(response) { + getCurrentUserInfo(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -15256,7 +17310,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -15268,16 +17322,16 @@ var ConnectionConfigurationsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConnectionConfiguration + * @params response Response returned by the server for a request to getCurrentUserToken * @throws ApiException if the response code was not in [200, 299] */ - createConnectionConfiguration(response) { + getCurrentUserToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", + "GetTokenResponse", "" ); return body; @@ -15317,7 +17371,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", + "GetTokenResponse", "" ); return body; @@ -15329,14 +17383,19 @@ var ConnectionConfigurationsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionConfiguration + * @params response Response returned by the server for a request to getCustomAccessToken * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionConfiguration(response) { + getCustomAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AccessToken", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15344,7 +17403,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15352,7 +17411,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15360,7 +17419,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15368,12 +17427,12 @@ var ConnectionConfigurationsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "AccessToken", "" ); return body; @@ -15385,14 +17444,19 @@ var ConnectionConfigurationsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConnectionConfiguration + * @params response Response returned by the server for a request to getFullAccessToken * @throws ApiException if the response code was not in [200, 299] */ - updateConnectionConfiguration(response) { + getFullAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Token", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15429,7 +17493,7 @@ var ConnectionConfigurationsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Token", "" ); return body; @@ -15437,294 +17501,79 @@ var ConnectionConfigurationsApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/ConnectionsApi.ts -var ConnectionsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. - * @param createConnectionRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getObjectAccessToken + * @throws ApiException if the response code was not in [200, 299] */ - createConnection(createConnectionRequest, _options) { + getObjectAccessToken(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConnectionRequest === null || createConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "createConnection", "createConnectionRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Token", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/connection/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. - * @param deleteConnectionRequest - */ - deleteConnection(deleteConnectionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "deleteConnection", "deleteConnectionRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/connection/delete"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Token", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. - * @param connectionIdentifier Unique ID or name of the connection. + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to login + * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionV2(connectionIdentifier, _options) { + login(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "deleteConnectionV2", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection - */ - downloadConnectionMetadataChanges(connectionIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection - */ - fetchConnectionDiffStatus(connectionIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "fetchConnectionDiffStatus", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. - * @param searchConnectionRequest - */ - searchConnection(searchConnectionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (searchConnectionRequest === null || searchConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "searchConnection", "searchConnectionRequest"); - } - const localVarPath = "/api/rest/2.0/connection/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. - * @param updateConnectionRequest - */ - updateConnection(updateConnectionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (updateConnectionRequest === null || updateConnectionRequest === void 0) { - throw new RequiredError("ConnectionsApi", "updateConnection", "updateConnectionRequest"); - } - const localVarPath = "/api/rest/2.0/connection/update"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * 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\":[ ] } ``` - * @param connectionIdentifier Unique ID or name of the connection. - * @param updateConnectionV2Request - */ - updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ConnectionsApi", "updateConnectionV2", "connectionIdentifier"); - } - if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { - throw new RequiredError("ConnectionsApi", "updateConnectionV2", "updateConnectionV2Request"); - } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } -}; -var ConnectionsApiResponseProcessor = class { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConnection - * @throws ApiException if the response code was not in [200, 299] - */ - createConnection(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", - "" - ); - return body; + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -15761,7 +17610,7 @@ var ConnectionsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", + "void", "" ); return body; @@ -15773,10 +17622,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnection + * @params response Response returned by the server for a request to logout * @throws ApiException if the response code was not in [200, 299] */ - deleteConnection(response) { + logout(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -15829,10 +17678,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionV2 + * @params response Response returned by the server for a request to revokeToken * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionV2(response) { + revokeToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -15885,21 +17734,25 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to downloadConnectionMetadataChanges + * @params response Response returned by the server for a request to validateToken * @throws ApiException if the response code was not in [200, 299] */ - downloadConnectionMetadataChanges(response) { + validateToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "TokenValidationResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -15907,7 +17760,7 @@ var ConnectionsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -15915,7 +17768,7 @@ var ConnectionsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -15923,35 +17776,193 @@ var ConnectionsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "TokenValidationResponse", + "" ); return body; } throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/ConnectionConfigurationsApi.ts +var ConnectionConfigurationsApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. + * @param connectionConfigurationSearchRequest + */ + connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. + * @param createConnectionConfigurationRequest + */ + createConnectionConfiguration(createConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. + * @param deleteConnectionConfigurationRequest + */ + deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/delete"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * @param configurationIdentifier Unique ID or name of the configuration. + * @param updateConnectionConfigurationRequest + */ + updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (configurationIdentifier === null || configurationIdentifier === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "configurationIdentifier"); + } + if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { + throw new RequiredError("ConnectionConfigurationsApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var ConnectionConfigurationsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchConnectionDiffStatus + * @params response Response returned by the server for a request to connectionConfigurationSearch * @throws ApiException if the response code was not in [200, 299] */ - fetchConnectionDiffStatus(response) { + connectionConfigurationSearch(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "Array", "" ); return body; @@ -15991,7 +18002,7 @@ var ConnectionsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "Array", "" ); return body; @@ -16003,16 +18014,16 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConnection + * @params response Response returned by the server for a request to createConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - searchConnection(response) { + createConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ConnectionConfigurationResponse", "" ); return body; @@ -16052,7 +18063,7 @@ var ConnectionsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ConnectionConfigurationResponse", "" ); return body; @@ -16064,10 +18075,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConnection + * @params response Response returned by the server for a request to deleteConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - updateConnection(response) { + deleteConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16120,10 +18131,10 @@ var ConnectionsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConnectionV2 + * @params response Response returned by the server for a request to updateConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - updateConnectionV2(response) { + updateConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16174,29 +18185,30 @@ var ConnectionsApiResponseProcessor = class { } }; -// apis/CustomActionApi.ts -var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/ConnectionsApi.ts +var ConnectionsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param createCustomActionRequest + * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. + * @param createConnectionRequest */ - createCustomAction(createCustomActionRequest, _options) { + createConnection(createConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createCustomActionRequest === null || createCustomActionRequest === void 0) { - throw new RequiredError("CustomActionApi", "createCustomAction", "createCustomActionRequest"); + if (createConnectionRequest === null || createConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "createConnection", "createConnectionRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions"; + const localVarPath = "/api/rest/2.0/connection/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), + ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -16213,20 +18225,30 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param customActionIdentifier Unique ID or name of the custom action. + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. + * @param deleteConnectionRequest */ - deleteCustomAction(customActionIdentifier, _options) { + deleteConnection(deleteConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("CustomActionApi", "deleteCustomAction", "customActionIdentifier"); + if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "deleteConnection", "deleteConnectionRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/connection/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -16240,29 +18262,21 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param searchCustomActionsRequest + * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. + * @param connectionIdentifier Unique ID or name of the connection. */ - searchCustomActions(searchCustomActionsRequest, _options) { + deleteConnectionV2(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { - throw new RequiredError("CustomActionApi", "searchCustomActions", "searchCustomActionsRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "deleteConnectionV2", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -16276,33 +18290,21 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param customActionIdentifier Unique ID or name of the custom action. - * @param updateCustomActionRequest + * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { + downloadConnectionMetadataChanges(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("CustomActionApi", "updateCustomAction", "customActionIdentifier"); - } - if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { - throw new RequiredError("CustomActionApi", "updateCustomAction", "updateCustomActionRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -16315,81 +18317,168 @@ var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var CustomActionApiResponseProcessor = class { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createCustomAction - * @throws ApiException if the response code was not in [200, 299] + * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - createCustomAction(response) { + fetchConnectionDiffStatus(connectionIdentifier, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "fetchConnectionDiffStatus", "connectionIdentifier"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. + * @param searchConnectionRequest + */ + searchConnection(searchConnectionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchConnectionRequest === null || searchConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "searchConnection", "searchConnectionRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/connection/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. + * @param updateConnectionRequest + */ + updateConnection(updateConnectionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateConnectionRequest === null || updateConnectionRequest === void 0) { + throw new RequiredError("ConnectionsApi", "updateConnection", "updateConnectionRequest"); + } + const localVarPath = "/api/rest/2.0/connection/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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\":[ ] } ``` + * @param connectionIdentifier Unique ID or name of the connection. + * @param updateConnectionV2Request + */ + updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ConnectionsApi", "updateConnectionV2", "connectionIdentifier"); + } + if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { + throw new RequiredError("ConnectionsApi", "updateConnectionV2", "updateConnectionV2Request"); + } + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; }); } +}; +var ConnectionsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCustomAction + * @params response Response returned by the server for a request to createConnection * @throws ApiException if the response code was not in [200, 299] */ - deleteCustomAction(response) { + createConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateConnectionResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16426,7 +18515,7 @@ var CustomActionApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "CreateConnectionResponse", "" ); return body; @@ -16438,19 +18527,14 @@ var CustomActionApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCustomActions + * @params response Response returned by the server for a request to deleteConnection * @throws ApiException if the response code was not in [200, 299] */ - searchCustomActions(response) { + deleteConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16487,7 +18571,7 @@ var CustomActionApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -16499,10 +18583,10 @@ var CustomActionApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateCustomAction + * @params response Response returned by the server for a request to deleteConnectionV2 * @throws ApiException if the response code was not in [200, 299] */ - updateCustomAction(response) { + deleteConnectionV2(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -16551,210 +18635,25 @@ var CustomActionApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/CustomCalendarsApi.ts -var CustomCalendarsApiRequestFactory = class extends BaseAPIRequestFactory { - /** - * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` - * @param createCalendarRequest - */ - createCalendar(createCalendarRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createCalendarRequest === null || createCalendarRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "createCalendar", "createCalendarRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. - * @param calendarIdentifier Unique ID or name of the Calendar. - */ - deleteCalendar(calendarIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("CustomCalendarsApi", "deleteCalendar", "calendarIdentifier"); - } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. - * @param generateCSVRequest - */ - generateCSV(generateCSVRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (generateCSVRequest === null || generateCSVRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "generateCSV", "generateCSVRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/generate-csv"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. - * @param searchCalendarsRequest - */ - searchCalendars(searchCalendarsRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "searchCalendars", "searchCalendarsRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` - * @param calendarIdentifier Unique Id or name of the calendar. - * @param updateCalendarRequest - */ - updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("CustomCalendarsApi", "updateCalendar", "calendarIdentifier"); - } - if (updateCalendarRequest === null || updateCalendarRequest === void 0) { - throw new RequiredError("CustomCalendarsApi", "updateCalendar", "updateCalendarRequest"); - } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } -}; -var CustomCalendarsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createCalendar + * @params response Response returned by the server for a request to downloadConnectionMetadataChanges * @throws ApiException if the response code was not in [200, 299] */ - createCalendar(response) { + downloadConnectionMetadataChanges(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", - "" - ); + const body = yield response.getBodyAsFile(); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -16762,7 +18661,7 @@ var CustomCalendarsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -16770,7 +18669,7 @@ var CustomCalendarsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -16778,15 +18677,15 @@ var CustomCalendarsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", - "" + "HttpFile", + "binary" ); return body; } @@ -16797,14 +18696,19 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCalendar + * @params response Response returned by the server for a request to fetchConnectionDiffStatus * @throws ApiException if the response code was not in [200, 299] */ - deleteCalendar(response) { + fetchConnectionDiffStatus(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "FetchConnectionDiffStatusResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16841,7 +18745,7 @@ var CustomCalendarsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "FetchConnectionDiffStatusResponse", "" ); return body; @@ -16853,16 +18757,16 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to generateCSV + * @params response Response returned by the server for a request to searchConnection * @throws ApiException if the response code was not in [200, 299] */ - generateCSV(response) { + searchConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -16902,7 +18806,7 @@ var CustomCalendarsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -16914,19 +18818,14 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCalendars + * @params response Response returned by the server for a request to updateConnection * @throws ApiException if the response code was not in [200, 299] */ - searchCalendars(response) { + updateConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -16963,7 +18862,7 @@ var CustomCalendarsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -16975,10 +18874,10 @@ var CustomCalendarsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateCalendar + * @params response Response returned by the server for a request to updateConnectionV2 * @throws ApiException if the response code was not in [200, 299] */ - updateCalendar(response) { + updateConnectionV2(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -17029,83 +18928,33 @@ var CustomCalendarsApiResponseProcessor = class { } }; -// apis/DBTApi.ts -var DBTApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/CustomActionApi.ts +var CustomActionApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param createCustomActionRequest */ - dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + createCustomAction(createCustomActionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionName === null || connectionName === void 0) { - throw new RequiredError("DBTApi", "dbtConnection", "connectionName"); - } - if (databaseName === null || databaseName === void 0) { - throw new RequiredError("DBTApi", "dbtConnection", "databaseName"); + if (createCustomActionRequest === null || createCustomActionRequest === void 0) { + throw new RequiredError("CustomActionApi", "createCustomAction", "createCustomActionRequest"); } - const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; + const localVarPath = "/api/rest/2.0/customization/custom-actions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17119,45 +18968,21 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param fileContent 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’ + * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param customActionIdentifier Unique ID or name of the custom action. */ - dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { + deleteCustomAction(customActionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("CustomActionApi", "deleteCustomAction", "customActionIdentifier"); } - const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" - ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17171,83 +18996,30 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED - * @param fileContent 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’ + * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param searchCustomActionsRequest */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { + searchCustomActions(searchCustomActionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "dbtGenerateTml", "dbtConnectionIdentifier"); - } - if (importWorksheets === null || importWorksheets === void 0) { - throw new RequiredError("DBTApi", "dbtGenerateTml", "importWorksheets"); + if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { + throw new RequiredError("CustomActionApi", "searchCustomActions", "searchCustomActionsRequest"); } - const localVarPath = "/api/rest/2.0/dbt/generate-tml"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (modelTables !== void 0) { - localVarFormParams.append("model_tables", modelTables); - } - if (importWorksheets !== void 0) { - localVarFormParams.append("import_worksheets", importWorksheets); - } - if (worksheets !== void 0) { - localVarFormParams.append("worksheets", worksheets); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. - */ - dbtSearch(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/dbt/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17261,108 +19033,34 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param customActionIdentifier Unique ID or name of the custom action. + * @param updateCustomActionRequest */ - deleteDbtConnection(dbtConnectionIdentifier, _options) { + updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "deleteDbtConnection", "dbtConnectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("CustomActionApi", "updateCustomAction", "customActionIdentifier"); } - return requestContext; - }); - } - /** - * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' - */ - updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("DBTApi", "updateDbtConnection", "dbtConnectionIdentifier"); + if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { + throw new RequiredError("CustomActionApi", "updateCustomAction", "updateCustomActionRequest"); } - const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -17376,21 +19074,21 @@ var DBTApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var DBTApiResponseProcessor = class { +var CustomActionApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtConnection + * @params response Response returned by the server for a request to createCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtConnection(response) { + createCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "ResponseCustomAction", "" ); return body; @@ -17430,7 +19128,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "ResponseCustomAction", "" ); return body; @@ -17442,19 +19140,14 @@ var DBTApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateSyncTml + * @params response Response returned by the server for a request to deleteCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateSyncTml(response) { + deleteCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17491,7 +19184,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -17503,16 +19196,16 @@ var DBTApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateTml + * @params response Response returned by the server for a request to searchCustomActions * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateTml(response) { + searchCustomActions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -17552,7 +19245,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "Array", "" ); return body; @@ -17564,19 +19257,14 @@ var DBTApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtSearch + * @params response Response returned by the server for a request to updateCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtSearch(response) { + updateCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17613,7 +19301,7 @@ var DBTApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -17621,148 +19309,97 @@ var DBTApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/CustomCalendarsApi.ts +var CustomCalendarsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteDbtConnection - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` + * @param createCalendarRequest */ - deleteDbtConnection(response) { + createCalendar(createCalendarRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (createCalendarRequest === null || createCalendarRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "createCalendar", "createCalendarRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/calendars/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateDbtConnection - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. + * @param calendarIdentifier Unique ID or name of the Calendar. */ - updateDbtConnection(response) { + deleteCalendar(calendarIdentifier, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("CustomCalendarsApi", "deleteCalendar", "calendarIdentifier"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } -}; - -// apis/DataApi.ts -var DataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). - * @param fetchAnswerDataRequest + * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. + * @param generateCSVRequest */ - fetchAnswerData(fetchAnswerDataRequest, _options) { + generateCSV(generateCSVRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { - throw new RequiredError("DataApi", "fetchAnswerData", "fetchAnswerDataRequest"); + if (generateCSVRequest === null || generateCSVRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "generateCSV", "generateCSVRequest"); } - const localVarPath = "/api/rest/2.0/metadata/answer/data"; + const localVarPath = "/api/rest/2.0/calendars/generate-csv"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), + ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -17779,26 +19416,27 @@ var DataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). - * @param fetchLiveboardDataRequest + * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. + * @param searchCalendarsRequest */ - fetchLiveboardData(fetchLiveboardDataRequest, _options) { + searchCalendars(searchCalendarsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { - throw new RequiredError("DataApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); + if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "searchCalendars", "searchCalendarsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; + const localVarPath = "/api/rest/2.0/calendars/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), + ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -17815,26 +19453,31 @@ var DataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). - * @param searchDataRequest + * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` + * @param calendarIdentifier Unique Id or name of the calendar. + * @param updateCalendarRequest */ - searchData(searchDataRequest, _options) { + updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchDataRequest === null || searchDataRequest === void 0) { - throw new RequiredError("DataApi", "searchData", "searchDataRequest"); + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("CustomCalendarsApi", "updateCalendar", "calendarIdentifier"); } - const localVarPath = "/api/rest/2.0/searchdata"; + if (updateCalendarRequest === null || updateCalendarRequest === void 0) { + throw new RequiredError("CustomCalendarsApi", "updateCalendar", "updateCalendarRequest"); + } + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), + ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -17851,21 +19494,21 @@ var DataApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var DataApiResponseProcessor = class { +var CustomCalendarsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerData + * @params response Response returned by the server for a request to createCalendar * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerData(response) { + createCalendar(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "CalendarResponse", "" ); return body; @@ -17905,7 +19548,7 @@ var DataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "CalendarResponse", "" ); return body; @@ -17917,19 +19560,14 @@ var DataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLiveboardData + * @params response Response returned by the server for a request to deleteCalendar * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardData(response) { + deleteCalendar(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -17966,7 +19604,7 @@ var DataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", + "void", "" ); return body; @@ -17978,16 +19616,16 @@ var DataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchData + * @params response Response returned by the server for a request to generateCSV * @throws ApiException if the response code was not in [200, 299] */ - searchData(response) { + generateCSV(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "any", "" ); return body; @@ -18027,7 +19665,7 @@ var DataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "any", "" ); return body; @@ -18035,34 +19673,203 @@ var DataApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/EmailCustomizationApi.ts -var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param createEmailCustomizationRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCalendars + * @throws ApiException if the response code was not in [200, 299] */ - createEmailCustomization(createEmailCustomizationRequest, _options) { + searchCalendars(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "createEmailCustomization", "createEmailCustomizationRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/customization/email"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateCalendar + * @throws ApiException if the response code was not in [200, 299] + */ + updateCalendar(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/DBTApi.ts +var DBTApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + */ + dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionName === null || connectionName === void 0) { + throw new RequiredError("DBTApi", "dbtConnection", "connectionName"); + } + if (databaseName === null || databaseName === void 0) { + throw new RequiredError("DBTApi", "dbtConnection", "databaseName"); + } + const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18076,20 +19883,46 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. - * @param templateIdentifier Unique ID or name of the email customization. + * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param fileContent 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’ */ - deleteEmailCustomization(templateIdentifier, _options) { + dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (templateIdentifier === null || templateIdentifier === void 0) { - throw new RequiredError("EmailCustomizationApi", "deleteEmailCustomization", "templateIdentifier"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); + const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" + ]); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18103,29 +19936,64 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. - * @param deleteOrgEmailCustomizationRequest + * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' + * @param importWorksheets Mention the worksheet tmls to import + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] + * @param fileContent 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’ */ - deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/email/delete"; + if (modelTables === null || modelTables === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "modelTables"); + } + if (importWorksheets === null || importWorksheets === void 0) { + throw new RequiredError("DBTApi", "dbtGenerateTml", "importWorksheets"); + } + const localVarPath = "/api/rest/2.0/dbt/generate-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (modelTables !== void 0) { + localVarFormParams.append("model_tables", modelTables); + } + if (importWorksheets !== void 0) { + localVarFormParams.append("import_worksheets", importWorksheets); + } + if (worksheets !== void 0) { + localVarFormParams.append("worksheets", worksheets); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18139,29 +20007,17 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. - * @param searchEmailCustomizationRequest + * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ - searchEmailCustomization(searchEmailCustomizationRequest, _options) { + dbtSearch(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); - } - const localVarPath = "/api/rest/2.0/customization/email/search"; + const localVarPath = "/api/rest/2.0/dbt/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18175,29 +20031,21 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param updateEmailCustomizationRequest + * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. */ - updateEmailCustomization(updateEmailCustomizationRequest, _options) { + deleteDbtConnection(dbtConnectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { - throw new RequiredError("EmailCustomizationApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "deleteDbtConnection", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/customization/email/update"; + const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18211,16 +20059,82 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' */ - validateEmailCustomization(_options) { + updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/customization/email/validate"; + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("DBTApi", "updateDbtConnection", "dbtConnectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" + ]); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -18234,21 +20148,21 @@ var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var EmailCustomizationApiResponseProcessor = class { +var DBTApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createEmailCustomization + * @params response Response returned by the server for a request to dbtConnection * @throws ApiException if the response code was not in [200, 299] */ - createEmailCustomization(response) { + dbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", + "any", "" ); return body; @@ -18261,7 +20175,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18269,6 +20183,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18280,7 +20202,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", + "any", "" ); return body; @@ -18292,14 +20214,19 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteEmailCustomization + * @params response Response returned by the server for a request to dbtGenerateSyncTml * @throws ApiException if the response code was not in [200, 299] */ - deleteEmailCustomization(response) { + dbtGenerateSyncTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18309,7 +20236,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18317,6 +20244,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18328,7 +20263,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -18340,14 +20275,19 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteOrgEmailCustomization + * @params response Response returned by the server for a request to dbtGenerateTml * @throws ApiException if the response code was not in [200, 299] */ - deleteOrgEmailCustomization(response) { + dbtGenerateTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18371,7 +20311,7 @@ var EmailCustomizationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18384,7 +20324,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -18396,16 +20336,16 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchEmailCustomization + * @params response Response returned by the server for a request to dbtSearch * @throws ApiException if the response code was not in [200, 299] */ - searchEmailCustomization(response) { + dbtSearch(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -18418,7 +20358,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18426,6 +20366,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18437,7 +20385,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -18449,10 +20397,10 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateEmailCustomization + * @params response Response returned by the server for a request to deleteDbtConnection * @throws ApiException if the response code was not in [200, 299] */ - updateEmailCustomization(response) { + deleteDbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -18480,7 +20428,7 @@ var EmailCustomizationApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18505,14 +20453,19 @@ var EmailCustomizationApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateEmailCustomization + * @params response Response returned by the server for a request to updateDbtConnection * @throws ApiException if the response code was not in [200, 299] */ - validateEmailCustomization(response) { + updateDbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -18522,7 +20475,7 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -18530,6 +20483,14 @@ var EmailCustomizationApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18541,7 +20502,7 @@ var EmailCustomizationApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -18551,92 +20512,30 @@ var EmailCustomizationApiResponseProcessor = class { } }; -// apis/GroupsApi.ts -var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/DataApi.ts +var DataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard - * @param createUserGroupRequest + * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). + * @param fetchAnswerDataRequest */ - createUserGroup(createUserGroupRequest, _options) { + fetchAnswerData(fetchAnswerDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createUserGroupRequest === null || createUserGroupRequest === void 0) { - throw new RequiredError("GroupsApi", "createUserGroup", "createUserGroupRequest"); - } - const localVarPath = "/api/rest/2.0/groups/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. - * @param groupIdentifier GUID or name of the group. - */ - deleteUserGroup(groupIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("GroupsApi", "deleteUserGroup", "groupIdentifier"); - } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. - * @param importUserGroupsRequest - */ - importUserGroups(importUserGroupsRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { - throw new RequiredError("GroupsApi", "importUserGroups", "importUserGroupsRequest"); + if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { + throw new RequiredError("DataApi", "fetchAnswerData", "fetchAnswerDataRequest"); } - const localVarPath = "/api/rest/2.0/groups/import"; + const localVarPath = "/api/rest/2.0/metadata/answer/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), + ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -18653,26 +20552,27 @@ var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. - * @param searchUserGroupsRequest + * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). + * @param fetchLiveboardDataRequest */ - searchUserGroups(searchUserGroupsRequest, _options) { + fetchLiveboardData(fetchLiveboardDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { - throw new RequiredError("GroupsApi", "searchUserGroups", "searchUserGroupsRequest"); + if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { + throw new RequiredError("DataApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); } - const localVarPath = "/api/rest/2.0/groups/search"; + const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), + ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -18689,30 +20589,27 @@ var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings - * @param groupIdentifier GUID or name of the group. - * @param updateUserGroupRequest + * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). + * @param searchDataRequest */ - updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { + searchData(searchDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("GroupsApi", "updateUserGroup", "groupIdentifier"); - } - if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { - throw new RequiredError("GroupsApi", "updateUserGroup", "updateUserGroupRequest"); + if (searchDataRequest === null || searchDataRequest === void 0) { + throw new RequiredError("DataApi", "searchData", "searchDataRequest"); } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); + const localVarPath = "/api/rest/2.0/searchdata"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), + ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -18729,81 +20626,25 @@ var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var GroupsApiResponseProcessor = class { +var DataApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUserGroup + * @params response Response returned by the server for a request to fetchAnswerData * @throws ApiException if the response code was not in [200, 299] */ - createUserGroup(response) { + fetchAnswerData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", + "AnswerDataResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteUserGroup - * @throws ApiException if the response code was not in [200, 299] - */ - deleteUserGroup(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -18839,7 +20680,7 @@ var GroupsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "AnswerDataResponse", "" ); return body; @@ -18851,16 +20692,16 @@ var GroupsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importUserGroups + * @params response Response returned by the server for a request to fetchLiveboardData * @throws ApiException if the response code was not in [200, 299] */ - importUserGroups(response) { + fetchLiveboardData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", + "LiveboardDataResponse", "" ); return body; @@ -18900,7 +20741,7 @@ var GroupsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", + "LiveboardDataResponse", "" ); return body; @@ -18912,76 +20753,20 @@ var GroupsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchUserGroups + * @params response Response returned by the server for a request to searchData * @throws ApiException if the response code was not in [200, 299] */ - searchUserGroups(response) { + searchData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SearchDataResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateUserGroup - * @throws ApiException if the response code was not in [200, 299] - */ - updateUserGroup(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -19017,7 +20802,7 @@ var GroupsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "SearchDataResponse", "" ); return body; @@ -19027,29 +20812,30 @@ var GroupsApiResponseProcessor = class { } }; -// apis/LogApi.ts -var LogApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/EmailCustomizationApi.ts +var EmailCustomizationApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). - * @param fetchLogsRequest + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param createEmailCustomizationRequest */ - fetchLogs(fetchLogsRequest, _options) { + createEmailCustomization(createEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLogsRequest === null || fetchLogsRequest === void 0) { - throw new RequiredError("LogApi", "fetchLogs", "fetchLogsRequest"); + if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "createEmailCustomization", "createEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/logs/fetch"; + const localVarPath = "/api/rest/2.0/customization/email"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), + ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19065,97 +20851,22 @@ var LogApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var LogApiResponseProcessor = class { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to fetchLogs - * @throws ApiException if the response code was not in [200, 299] - */ - fetchLogs(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } -}; - -// apis/MetadataApi.ts -var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` - * @param convertWorksheetToModelRequest + * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. + * @param templateIdentifier Unique ID or name of the email customization. */ - convertWorksheetToModel(convertWorksheetToModelRequest, _options) { + deleteEmailCustomization(templateIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { - throw new RequiredError("MetadataApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); + if (templateIdentifier === null || templateIdentifier === void 0) { + throw new RequiredError("EmailCustomizationApi", "deleteEmailCustomization", "templateIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; + const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -19169,26 +20880,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. - * @param copyObjectRequest + * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. + * @param deleteOrgEmailCustomizationRequest */ - copyObject(copyObjectRequest, _options) { + deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (copyObjectRequest === null || copyObjectRequest === void 0) { - throw new RequiredError("MetadataApi", "copyObject", "copyObjectRequest"); + if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/copyobject"; + const localVarPath = "/api/rest/2.0/customization/email/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), + ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19205,26 +20917,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. - * @param deleteMetadataRequest + * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * @param searchEmailCustomizationRequest */ - deleteMetadata(deleteMetadataRequest, _options) { + searchEmailCustomization(searchEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "deleteMetadata", "deleteMetadataRequest"); + if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/delete"; + const localVarPath = "/api/rest/2.0/customization/email/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), + ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19241,26 +20954,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). - * @param exportMetadataTMLRequest + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param updateEmailCustomizationRequest */ - exportMetadataTML(exportMetadataTMLRequest, _options) { + updateEmailCustomization(updateEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { - throw new RequiredError("MetadataApi", "exportMetadataTML", "exportMetadataTMLRequest"); + if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { + throw new RequiredError("EmailCustomizationApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/tml/export"; + const localVarPath = "/api/rest/2.0/customization/email/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), + ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19277,29 +20991,17 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. - * @param exportMetadataTMLBatchedRequest + * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ - exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { + validateEmailCustomization(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { - throw new RequiredError("MetadataApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; + const localVarPath = "/api/rest/2.0/customization/email/validate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -19312,207 +21014,348 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var EmailCustomizationApiResponseProcessor = class { /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` - * @param fetchAnswerSqlQueryRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { + createEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { - throw new RequiredError("MetadataApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/answer/sql"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. - * @param fetchAsyncImportTaskStatusRequest - */ - fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { - throw new RequiredError("MetadataApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` - * @param fetchLiveboardSqlQueryRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { + deleteEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { - throw new RequiredError("MetadataApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). - * @param importMetadataTMLRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteOrgEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTML(importMetadataTMLRequest, _options) { + deleteOrgEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { - throw new RequiredError("MetadataApi", "importMetadataTML", "importMetadataTMLRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/metadata/tml/import"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. - * @param importMetadataTMLAsyncRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { + searchEmailCustomization(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { - throw new RequiredError("MetadataApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. - * @param parameterizeMetadataRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateEmailCustomization + * @throws ApiException if the response code was not in [200, 299] */ - parameterizeMetadata(parameterizeMetadataRequest, _options) { + updateEmailCustomization(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to validateEmailCustomization + * @throws ApiException if the response code was not in [200, 299] + */ + validateEmailCustomization(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/GroupsApi.ts +var GroupsApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard + * @param createUserGroupRequest + */ + createUserGroup(createUserGroupRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "parameterizeMetadata", "parameterizeMetadataRequest"); + if (createUserGroupRequest === null || createUserGroupRequest === void 0) { + throw new RequiredError("GroupsApi", "createUserGroup", "createUserGroupRequest"); } - const localVarPath = "/api/rest/2.0/metadata/parameterize"; + const localVarPath = "/api/rest/2.0/groups/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), + ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19529,29 +21372,21 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. - * @param searchMetadataRequest + * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. + * @param groupIdentifier GUID or name of the group. */ - searchMetadata(searchMetadataRequest, _options) { + deleteUserGroup(groupIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchMetadataRequest === null || searchMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "searchMetadata", "searchMetadataRequest"); + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("GroupsApi", "deleteUserGroup", "groupIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/search"; + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -19565,26 +21400,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. - * @param unparameterizeMetadataRequest + * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. + * @param importUserGroupsRequest */ - unparameterizeMetadata(unparameterizeMetadataRequest, _options) { + importUserGroups(importUserGroupsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { - throw new RequiredError("MetadataApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); + if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { + throw new RequiredError("GroupsApi", "importUserGroups", "importUserGroupsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/unparameterize"; + const localVarPath = "/api/rest/2.0/groups/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19601,26 +21437,27 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` - * @param updateMetadataHeaderRequest + * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. + * @param searchUserGroupsRequest */ - updateMetadataHeader(updateMetadataHeaderRequest, _options) { + searchUserGroups(searchUserGroupsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { - throw new RequiredError("MetadataApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); + if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { + throw new RequiredError("GroupsApi", "searchUserGroups", "searchUserGroupsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/headers/update"; + const localVarPath = "/api/rest/2.0/groups/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), + ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19637,26 +21474,31 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` - * @param updateMetadataObjIdRequest + * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings + * @param groupIdentifier GUID or name of the group. + * @param updateUserGroupRequest */ - updateMetadataObjId(updateMetadataObjIdRequest, _options) { + updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { - throw new RequiredError("MetadataApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("GroupsApi", "updateUserGroup", "groupIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; + if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { + throw new RequiredError("GroupsApi", "updateUserGroup", "updateUserGroupRequest"); + } + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), + ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -19673,21 +21515,21 @@ var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var MetadataApiResponseProcessor = class { +var GroupsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to convertWorksheetToModel + * @params response Response returned by the server for a request to createUserGroup * @throws ApiException if the response code was not in [200, 299] */ - convertWorksheetToModel(response) { + createUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -19727,7 +21569,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -19739,19 +21581,14 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to copyObject + * @params response Response returned by the server for a request to deleteUserGroup * @throws ApiException if the response code was not in [200, 299] */ - copyObject(response) { + deleteUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -19777,14 +21614,6 @@ var MetadataApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - if (isCodeInRange("404", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); - } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -19796,7 +21625,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", + "void", "" ); return body; @@ -19808,14 +21637,19 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteMetadata + * @params response Response returned by the server for a request to importUserGroups * @throws ApiException if the response code was not in [200, 299] */ - deleteMetadata(response) { + importUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ImportUserGroupsResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -19852,7 +21686,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ImportUserGroupsResponse", "" ); return body; @@ -19864,16 +21698,16 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTML + * @params response Response returned by the server for a request to searchUserGroups * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTML(response) { + searchUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -19913,7 +21747,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -19925,19 +21759,14 @@ var MetadataApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTMLBatched + * @params response Response returned by the server for a request to updateUserGroup * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTMLBatched(response) { + updateUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -19974,7 +21803,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -19982,20 +21811,63 @@ var MetadataApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/LogApi.ts +var LogApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). + * @param fetchLogsRequest + */ + fetchLogs(fetchLogsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchLogsRequest === null || fetchLogsRequest === void 0) { + throw new RequiredError("LogApi", "fetchLogs", "fetchLogsRequest"); + } + const localVarPath = "/api/rest/2.0/logs/fetch"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var LogApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerSqlQuery + * @params response Response returned by the server for a request to fetchLogs * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerSqlQuery(response) { + fetchLogs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "Array", "" ); return body; @@ -20035,7 +21907,7 @@ var MetadataApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "Array", "" ); return body; @@ -20043,560 +21915,439 @@ var MetadataApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/MetadataApi.ts +var MetadataApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus - * @throws ApiException if the response code was not in [200, 299] + * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` + * @param convertWorksheetToModelRequest */ - fetchAsyncImportTaskStatus(response) { + convertWorksheetToModel(convertWorksheetToModelRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { + throw new RequiredError("MetadataApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to fetchLiveboardSqlQuery - * @throws ApiException if the response code was not in [200, 299] + * 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. + * @param copyObjectRequest */ - fetchLiveboardSqlQuery(response) { + copyObject(copyObjectRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (copyObjectRequest === null || copyObjectRequest === void 0) { + throw new RequiredError("MetadataApi", "copyObject", "copyObjectRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/copyobject"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to importMetadataTML - * @throws ApiException if the response code was not in [200, 299] + * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. + * @param deleteMetadataRequest */ - importMetadataTML(response) { + deleteMetadata(deleteMetadataRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "deleteMetadata", "deleteMetadataRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/delete"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). + * @param exportMetadataTMLRequest + */ + exportMetadataTML(exportMetadataTMLRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { + throw new RequiredError("MetadataApi", "exportMetadataTML", "exportMetadataTMLRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/export"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to importMetadataTMLAsync - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. + * @param exportMetadataTMLBatchedRequest */ - importMetadataTMLAsync(response) { + exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { + throw new RequiredError("MetadataApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` + * @param fetchAnswerSqlQueryRequest + */ + fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { + throw new RequiredError("MetadataApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/answer/sql"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to parameterizeMetadata - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. + * @param fetchAsyncImportTaskStatusRequest */ - parameterizeMetadata(response) { + fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { + throw new RequiredError("MetadataApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` + * @param fetchLiveboardSqlQueryRequest + */ + fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { + throw new RequiredError("MetadataApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to searchMetadata - * @throws ApiException if the response code was not in [200, 299] + * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). + * @param importMetadataTMLRequest */ - searchMetadata(response) { + importMetadataTML(importMetadataTMLRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + var _a, _b, _c; + let _config = _options || this.configuration; + if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { + throw new RequiredError("MetadataApi", "importMetadataTML", "importMetadataTMLRequest"); } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to unparameterizeMetadata - * @throws ApiException if the response code was not in [200, 299] - */ - unparameterizeMetadata(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/import"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateMetadataHeader - * @throws ApiException if the response code was not in [200, 299] + * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. + * @param importMetadataTMLAsyncRequest */ - updateMetadataHeader(response) { + importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { + throw new RequiredError("MetadataApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateMetadataObjId - * @throws ApiException if the response code was not in [200, 299] + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param parameterizeMetadataRequest */ - updateMetadataObjId(response) { + parameterizeMetadata(parameterizeMetadataRequest, _options) { return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + var _a, _b, _c; + let _config = _options || this.configuration; + if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "parameterizeMetadata", "parameterizeMetadataRequest"); } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + const localVarPath = "/api/rest/2.0/metadata/parameterize"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + return requestContext; }); } -}; - -// apis/OrgsApi.ts -var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param createOrgRequest + * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. + * @param searchMetadataRequest */ - createOrg(createOrgRequest, _options) { + searchMetadata(searchMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createOrgRequest === null || createOrgRequest === void 0) { - throw new RequiredError("OrgsApi", "createOrg", "createOrgRequest"); + if (searchMetadataRequest === null || searchMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "searchMetadata", "searchMetadataRequest"); } - const localVarPath = "/api/rest/2.0/orgs/create"; + const localVarPath = "/api/rest/2.0/metadata/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), + ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -20613,20 +22364,30 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. - * @param orgIdentifier ID or name of the Org + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param unparameterizeMetadataRequest */ - deleteOrg(orgIdentifier, _options) { + unparameterizeMetadata(unparameterizeMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("OrgsApi", "deleteOrg", "orgIdentifier"); + if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { + throw new RequiredError("MetadataApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/unparameterize"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -20640,26 +22401,27 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param searchOrgsRequest + * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` + * @param updateMetadataHeaderRequest */ - searchOrgs(searchOrgsRequest, _options) { + updateMetadataHeader(updateMetadataHeaderRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchOrgsRequest === null || searchOrgsRequest === void 0) { - throw new RequiredError("OrgsApi", "searchOrgs", "searchOrgsRequest"); + if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { + throw new RequiredError("MetadataApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); } - const localVarPath = "/api/rest/2.0/orgs/search"; + const localVarPath = "/api/rest/2.0/metadata/headers/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), + ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -20676,30 +22438,27 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param orgIdentifier ID or name of the Org - * @param updateOrgRequest + * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` + * @param updateMetadataObjIdRequest */ - updateOrg(orgIdentifier, updateOrgRequest, _options) { + updateMetadataObjId(updateMetadataObjIdRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("OrgsApi", "updateOrg", "orgIdentifier"); - } - if (updateOrgRequest === null || updateOrgRequest === void 0) { - throw new RequiredError("OrgsApi", "updateOrg", "updateOrgRequest"); + if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { + throw new RequiredError("MetadataApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), + ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -20716,21 +22475,21 @@ var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var OrgsApiResponseProcessor = class { +var MetadataApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createOrg + * @params response Response returned by the server for a request to convertWorksheetToModel * @throws ApiException if the response code was not in [200, 299] */ - createOrg(response) { + convertWorksheetToModel(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", + "ResponseWorksheetToModelConversion", "" ); return body; @@ -20770,7 +22529,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", + "ResponseWorksheetToModelConversion", "" ); return body; @@ -20782,14 +22541,19 @@ var OrgsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteOrg + * @params response Response returned by the server for a request to copyObject * @throws ApiException if the response code was not in [200, 299] */ - deleteOrg(response) { + copyObject(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseCopyObject", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -20815,6 +22579,14 @@ var OrgsApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } + if (isCodeInRange("404", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -20826,7 +22598,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ResponseCopyObject", "" ); return body; @@ -20838,19 +22610,14 @@ var OrgsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchOrgs + * @params response Response returned by the server for a request to deleteMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchOrgs(response) { + deleteMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -20887,7 +22654,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -20899,14 +22666,19 @@ var OrgsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateOrg + * @params response Response returned by the server for a request to exportMetadataTML * @throws ApiException if the response code was not in [200, 299] */ - updateOrg(response) { + exportMetadataTML(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -20943,7 +22715,7 @@ var OrgsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -20951,103 +22723,29 @@ var OrgsApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/ReportsApi.ts -var ReportsApiRequestFactory = class extends BaseAPIRequestFactory { - /** - * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. - * @param exportAnswerReportRequest - */ - exportAnswerReport(exportAnswerReportRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { - throw new RequiredError("ReportsApi", "exportAnswerReport", "exportAnswerReportRequest"); - } - const localVarPath = "/api/rest/2.0/report/answer"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. - * @param exportLiveboardReportRequest - */ - exportLiveboardReport(exportLiveboardReportRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { - throw new RequiredError("ReportsApi", "exportLiveboardReport", "exportLiveboardReportRequest"); - } - const localVarPath = "/api/rest/2.0/report/liveboard"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } -}; -var ReportsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportAnswerReport + * @params response Response returned by the server for a request to exportMetadataTMLBatched * @throws ApiException if the response code was not in [200, 299] */ - exportAnswerReport(response) { + exportMetadataTMLBatched(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -21055,7 +22753,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -21063,7 +22761,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -21071,15 +22769,15 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "any", + "" ); return body; } @@ -21090,21 +22788,25 @@ var ReportsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportLiveboardReport + * @params response Response returned by the server for a request to fetchAnswerSqlQuery * @throws ApiException if the response code was not in [200, 299] */ - exportLiveboardReport(response) { + fetchAnswerSqlQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SqlQueryResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -21112,7 +22814,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -21120,7 +22822,7 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -21128,180 +22830,218 @@ var ReportsApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "SqlQueryResponse", + "" ); return body; } throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/RolesApi.ts -var RolesApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param createRoleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus + * @throws ApiException if the response code was not in [200, 299] */ - createRole(createRoleRequest, _options) { + fetchAsyncImportTaskStatus(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createRoleRequest === null || createRoleRequest === void 0) { - throw new RequiredError("RolesApi", "createRole", "createRoleRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "GetAsyncImportStatusResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/roles/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. - */ - deleteRole(roleIdentifier, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("RolesApi", "deleteRole", "roleIdentifier"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "GetAsyncImportStatusResponse", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. - * @param searchRolesRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to fetchLiveboardSqlQuery + * @throws ApiException if the response code was not in [200, 299] */ - searchRoles(searchRolesRequest, _options) { + fetchLiveboardSqlQuery(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (searchRolesRequest === null || searchRolesRequest === void 0) { - throw new RequiredError("RolesApi", "searchRoles", "searchRolesRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SqlQueryResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/roles/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SqlQueryResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. - * @param updateRoleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to importMetadataTML + * @throws ApiException if the response code was not in [200, 299] */ - updateRole(roleIdentifier, updateRoleRequest, _options) { + importMetadataTML(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("RolesApi", "updateRole", "roleIdentifier"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - if (updateRoleRequest === null || updateRoleRequest === void 0) { - throw new RequiredError("RolesApi", "updateRole", "updateRoleRequest"); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; -var RolesApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createRole + * @params response Response returned by the server for a request to importMetadataTMLAsync * @throws ApiException if the response code was not in [200, 299] */ - createRole(response) { + importMetadataTMLAsync(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -21312,7 +23052,7 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -21336,12 +23076,12 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -21353,10 +23093,10 @@ var RolesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteRole + * @params response Response returned by the server for a request to parameterizeMetadata * @throws ApiException if the response code was not in [200, 299] */ - deleteRole(response) { + parameterizeMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -21392,7 +23132,7 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( @@ -21409,16 +23149,16 @@ var RolesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchRoles + * @params response Response returned by the server for a request to searchMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchRoles(response) { + searchMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -21453,12 +23193,12 @@ var RolesApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -21470,20 +23210,71 @@ var RolesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateRole + * @params response Response returned by the server for a request to unparameterizeMetadata * @throws ApiException if the response code was not in [200, 299] */ - updateRole(response) { + unparameterizeMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", "" ); return body; } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetadataHeader + * @throws ApiException if the response code was not in [200, 299] + */ + updateMetadataHeader(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -21519,7 +23310,63 @@ var RolesApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateMetadataObjId + * @throws ApiException if the response code was not in [200, 299] + */ + updateMetadataObjId(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", "" ); return body; @@ -21529,29 +23376,30 @@ var RolesApiResponseProcessor = class { } }; -// apis/SchedulesApi.ts -var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/OrgsApi.ts +var OrgsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). - * @param createScheduleRequest + * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param createOrgRequest */ - createSchedule(createScheduleRequest, _options) { + createOrg(createOrgRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createScheduleRequest === null || createScheduleRequest === void 0) { - throw new RequiredError("SchedulesApi", "createSchedule", "createScheduleRequest"); + if (createOrgRequest === null || createOrgRequest === void 0) { + throw new RequiredError("OrgsApi", "createOrg", "createOrgRequest"); } - const localVarPath = "/api/rest/2.0/schedules/create"; + const localVarPath = "/api/rest/2.0/orgs/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21568,20 +23416,21 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. - * @param scheduleIdentifier Unique ID or name of the scheduled job. + * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. + * @param orgIdentifier ID or name of the Org */ - deleteSchedule(scheduleIdentifier, _options) { + deleteOrg(orgIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("SchedulesApi", "deleteSchedule", "scheduleIdentifier"); + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("OrgsApi", "deleteOrg", "orgIdentifier"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -21595,26 +23444,27 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. - * @param searchSchedulesRequest + * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param searchOrgsRequest */ - searchSchedules(searchSchedulesRequest, _options) { + searchOrgs(searchOrgsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { - throw new RequiredError("SchedulesApi", "searchSchedules", "searchSchedulesRequest"); + if (searchOrgsRequest === null || searchOrgsRequest === void 0) { + throw new RequiredError("OrgsApi", "searchOrgs", "searchOrgsRequest"); } - const localVarPath = "/api/rest/2.0/schedules/search"; + const localVarPath = "/api/rest/2.0/orgs/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), + ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21631,30 +23481,31 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. - * @param scheduleIdentifier Unique ID or name of the schedule. - * @param updateScheduleRequest + * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param orgIdentifier ID or name of the Org + * @param updateOrgRequest */ - updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + updateOrg(orgIdentifier, updateOrgRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("SchedulesApi", "updateSchedule", "scheduleIdentifier"); + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("OrgsApi", "updateOrg", "orgIdentifier"); } - if (updateScheduleRequest === null || updateScheduleRequest === void 0) { - throw new RequiredError("SchedulesApi", "updateSchedule", "updateScheduleRequest"); + if (updateOrgRequest === null || updateOrgRequest === void 0) { + throw new RequiredError("OrgsApi", "updateOrg", "updateOrgRequest"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21671,21 +23522,21 @@ var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var SchedulesApiResponseProcessor = class { +var OrgsApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createSchedule + * @params response Response returned by the server for a request to createOrg * @throws ApiException if the response code was not in [200, 299] */ - createSchedule(response) { + createOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", + "OrgResponse", "" ); return body; @@ -21725,7 +23576,7 @@ var SchedulesApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", + "OrgResponse", "" ); return body; @@ -21737,10 +23588,10 @@ var SchedulesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteSchedule + * @params response Response returned by the server for a request to deleteOrg * @throws ApiException if the response code was not in [200, 299] */ - deleteSchedule(response) { + deleteOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -21793,16 +23644,16 @@ var SchedulesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchSchedules + * @params response Response returned by the server for a request to searchOrgs * @throws ApiException if the response code was not in [200, 299] */ - searchSchedules(response) { + searchOrgs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -21842,7 +23693,7 @@ var SchedulesApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -21854,10 +23705,10 @@ var SchedulesApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateSchedule + * @params response Response returned by the server for a request to updateOrg * @throws ApiException if the response code was not in [200, 299] */ - updateSchedule(response) { + updateOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -21908,29 +23759,30 @@ var SchedulesApiResponseProcessor = class { } }; -// apis/SecurityApi.ts -var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/ReportsApi.ts +var ReportsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. - * @param assignChangeAuthorRequest + * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. + * @param exportAnswerReportRequest */ - assignChangeAuthor(assignChangeAuthorRequest, _options) { + exportAnswerReport(exportAnswerReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { - throw new RequiredError("SecurityApi", "assignChangeAuthor", "assignChangeAuthorRequest"); + if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { + throw new RequiredError("ReportsApi", "exportAnswerReport", "exportAnswerReportRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/assign"; + const localVarPath = "/api/rest/2.0/report/answer"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), + ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21947,26 +23799,27 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` - * @param fetchColumnSecurityRulesRequest + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. + * @param exportLiveboardReportRequest */ - fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { + exportLiveboardReport(exportLiveboardReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { - throw new RequiredError("SecurityApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); + if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { + throw new RequiredError("ReportsApi", "exportLiveboardReport", "exportLiveboardReportRequest"); } - const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; + const localVarPath = "/api/rest/2.0/report/liveboard"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), + ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -21982,99 +23835,148 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var ReportsApiResponseProcessor = class { /** - * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. - * @param fetchPermissionsOfPrincipalsRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to exportAnswerReport + * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { + exportAnswerReport(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { - throw new RequiredError("SecurityApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } - const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "HttpFile", + "binary" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. - * @param fetchPermissionsOnMetadataRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to exportLiveboardReport + * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { + exportLiveboardReport(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } - const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "binary" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "HttpFile", + "binary" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/RolesApi.ts +var RolesApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. - * @param publishMetadataRequest + * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param createRoleRequest */ - publishMetadata(publishMetadataRequest, _options) { + createRole(createRoleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (publishMetadataRequest === null || publishMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "publishMetadata", "publishMetadataRequest"); + if (createRoleRequest === null || createRoleRequest === void 0) { + throw new RequiredError("RolesApi", "createRole", "createRoleRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/publish"; + const localVarPath = "/api/rest/2.0/roles/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), + ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22091,29 +23993,21 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. - * @param shareMetadataRequest + * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. */ - shareMetadata(shareMetadataRequest, _options) { + deleteRole(roleIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (shareMetadataRequest === null || shareMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "shareMetadata", "shareMetadataRequest"); + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("RolesApi", "deleteRole", "roleIdentifier"); } - const localVarPath = "/api/rest/2.0/security/metadata/share"; + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -22127,26 +24021,27 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations - * @param unpublishMetadataRequest + * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. + * @param searchRolesRequest */ - unpublishMetadata(unpublishMetadataRequest, _options) { + searchRoles(searchRolesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { - throw new RequiredError("SecurityApi", "unpublishMetadata", "unpublishMetadataRequest"); + if (searchRolesRequest === null || searchRolesRequest === void 0) { + throw new RequiredError("RolesApi", "searchRoles", "searchRolesRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; + const localVarPath = "/api/rest/2.0/roles/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), + ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22163,26 +24058,31 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups - * @param updateColumnSecurityRulesRequest + * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. + * @param updateRoleRequest */ - updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { + updateRole(roleIdentifier, updateRoleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { - throw new RequiredError("SecurityApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("RolesApi", "updateRole", "roleIdentifier"); } - const localVarPath = "/api/rest/2.0/security/column/rules/update"; + if (updateRoleRequest === null || updateRoleRequest === void 0) { + throw new RequiredError("RolesApi", "updateRole", "updateRoleRequest"); + } + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), + ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22199,19 +24099,24 @@ var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var SecurityApiResponseProcessor = class { +var RolesApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignChangeAuthor + * @params response Response returned by the server for a request to createRole * @throws ApiException if the response code was not in [200, 299] */ - assignChangeAuthor(response) { + createRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RoleResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22219,7 +24124,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22243,12 +24148,12 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "RoleResponse", "" ); return body; @@ -22260,19 +24165,14 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchColumnSecurityRules + * @params response Response returned by the server for a request to deleteRole * @throws ApiException if the response code was not in [200, 299] */ - fetchColumnSecurityRules(response) { + deleteRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22280,7 +24180,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22296,7 +24196,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22304,12 +24204,12 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -22321,16 +24221,16 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals + * @params response Response returned by the server for a request to searchRoles * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOfPrincipals(response) { + searchRoles(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "Array", "" ); return body; @@ -22365,12 +24265,12 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "Array", "" ); return body; @@ -22382,16 +24282,16 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOnMetadata + * @params response Response returned by the server for a request to updateRole * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOnMetadata(response) { + updateRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "RoleResponse", "" ); return body; @@ -22431,7 +24331,7 @@ var SecurityApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "RoleResponse", "" ); return body; @@ -22439,18 +24339,172 @@ var SecurityApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/SchedulesApi.ts +var SchedulesApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). + * @param createScheduleRequest + */ + createSchedule(createScheduleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createScheduleRequest === null || createScheduleRequest === void 0) { + throw new RequiredError("SchedulesApi", "createSchedule", "createScheduleRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. + * @param scheduleIdentifier Unique ID or name of the scheduled job. + */ + deleteSchedule(scheduleIdentifier, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("SchedulesApi", "deleteSchedule", "scheduleIdentifier"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. + * @param searchSchedulesRequest + */ + searchSchedules(searchSchedulesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { + throw new RequiredError("SchedulesApi", "searchSchedules", "searchSchedulesRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. + * @param scheduleIdentifier Unique ID or name of the schedule. + * @param updateScheduleRequest + */ + updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("SchedulesApi", "updateSchedule", "scheduleIdentifier"); + } + if (updateScheduleRequest === null || updateScheduleRequest === void 0) { + throw new RequiredError("SchedulesApi", "updateSchedule", "updateScheduleRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var SchedulesApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to publishMetadata + * @params response Response returned by the server for a request to createSchedule * @throws ApiException if the response code was not in [200, 299] */ - publishMetadata(response) { + createSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseSchedule", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22487,7 +24541,7 @@ var SecurityApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ResponseSchedule", "" ); return body; @@ -22499,10 +24553,10 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to shareMetadata + * @params response Response returned by the server for a request to deleteSchedule * @throws ApiException if the response code was not in [200, 299] */ - shareMetadata(response) { + deleteSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -22555,14 +24609,19 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to unpublishMetadata + * @params response Response returned by the server for a request to searchSchedules * @throws ApiException if the response code was not in [200, 299] */ - unpublishMetadata(response) { + searchSchedules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22599,7 +24658,7 @@ var SecurityApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -22611,10 +24670,10 @@ var SecurityApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateColumnSecurityRules + * @params response Response returned by the server for a request to updateSchedule * @throws ApiException if the response code was not in [200, 299] */ - updateColumnSecurityRules(response) { + updateSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -22626,7 +24685,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Bad request - Invalid parameters or table not found", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22642,7 +24701,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to modify security rules for this table", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -22650,7 +24709,7 @@ var SecurityApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( @@ -22665,65 +24724,33 @@ var SecurityApiResponseProcessor = class { } }; -// apis/SystemApi.ts -var SystemApiRequestFactory = class extends BaseAPIRequestFactory { +// apis/SecurityApi.ts +var SecurityApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. + * @param assignChangeAuthorRequest */ - getSystemConfig(_options) { + assignChangeAuthor(assignChangeAuthorRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { + throw new RequiredError("SecurityApi", "assignChangeAuthor", "assignChangeAuthorRequest"); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. - */ - getSystemInformation(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); - } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. - */ - getSystemOverrideInfo(_options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config-overrides"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + const localVarPath = "/api/rest/2.0/security/metadata/assign"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -22737,26 +24764,27 @@ var SystemApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. - * @param updateSystemConfigRequest + * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` + * @param fetchColumnSecurityRulesRequest */ - updateSystemConfig(updateSystemConfigRequest, _options) { + fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { - throw new RequiredError("SystemApi", "updateSystemConfig", "updateSystemConfigRequest"); + if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { + throw new RequiredError("SecurityApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); } - const localVarPath = "/api/rest/2.0/system/config-update"; + const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), + ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -22772,272 +24800,28 @@ var SystemApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } -}; -var SystemApiResponseProcessor = class { - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getSystemConfig - * @throws ApiException if the response code was not in [200, 299] - */ - getSystemConfig(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getSystemInformation - * @throws ApiException if the response code was not in [200, 299] - */ - getSystemInformation(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getSystemOverrideInfo - * @throws ApiException if the response code was not in [200, 299] - */ - getSystemOverrideInfo(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to updateSystemConfig - * @throws ApiException if the response code was not in [200, 299] - */ - updateSystemConfig(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } -}; - -// apis/TagsApi.ts -var TagsApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. - * @param assignTagRequest + * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. + * @param fetchPermissionsOfPrincipalsRequest */ - assignTag(assignTagRequest, _options) { + fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("TagsApi", "assignTag", "assignTagRequest"); + if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { + throw new RequiredError("SecurityApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); } - const localVarPath = "/api/rest/2.0/tags/assign"; + const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23054,26 +24838,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a tag object. Tags 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. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param createTagRequest + * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. + * @param fetchPermissionsOnMetadataRequest */ - createTag(createTagRequest, _options) { + fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createTagRequest === null || createTagRequest === void 0) { - throw new RequiredError("TagsApi", "createTag", "createTagRequest"); + if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/create"; + const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createTagRequest, "CreateTagRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23090,20 +24875,30 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Tag identifier Tag name or Tag id. + * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. + * @param publishMetadataRequest */ - deleteTag(tagIdentifier, _options) { + publishMetadata(publishMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("TagsApi", "deleteTag", "tagIdentifier"); + if (publishMetadataRequest === null || publishMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "publishMetadata", "publishMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/security/metadata/publish"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -23117,26 +24912,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. - * @param searchTagsRequest + * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. + * @param shareMetadataRequest */ - searchTags(searchTagsRequest, _options) { + shareMetadata(shareMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchTagsRequest === null || searchTagsRequest === void 0) { - throw new RequiredError("TagsApi", "searchTags", "searchTagsRequest"); + if (shareMetadataRequest === null || shareMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "shareMetadata", "shareMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/search"; + const localVarPath = "/api/rest/2.0/security/metadata/share"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), + ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23153,26 +24949,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. - * @param assignTagRequest + * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations + * @param unpublishMetadataRequest */ - unassignTag(assignTagRequest, _options) { + unpublishMetadata(unpublishMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("TagsApi", "unassignTag", "assignTagRequest"); + if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { + throw new RequiredError("SecurityApi", "unpublishMetadata", "unpublishMetadataRequest"); } - const localVarPath = "/api/rest/2.0/tags/unassign"; + const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23189,30 +24986,27 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Name or Id of the tag. - * @param updateTagRequest + * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups + * @param updateColumnSecurityRulesRequest */ - updateTag(tagIdentifier, updateTagRequest, _options) { + updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("TagsApi", "updateTag", "tagIdentifier"); - } - if (updateTagRequest === null || updateTagRequest === void 0) { - throw new RequiredError("TagsApi", "updateTag", "updateTagRequest"); + if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { + throw new RequiredError("SecurityApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/security/column/rules/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23229,15 +25023,15 @@ var TagsApiRequestFactory = class extends BaseAPIRequestFactory { }); } }; -var TagsApiResponseProcessor = class { +var SecurityApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignTag + * @params response Response returned by the server for a request to assignChangeAuthor * @throws ApiException if the response code was not in [200, 299] */ - assignTag(response) { + assignChangeAuthor(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23290,16 +25084,16 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createTag + * @params response Response returned by the server for a request to fetchColumnSecurityRules * @throws ApiException if the response code was not in [200, 299] */ - createTag(response) { + fetchColumnSecurityRules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", + "Array", "" ); return body; @@ -23310,7 +25104,7 @@ var TagsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23326,7 +25120,7 @@ var TagsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23334,12 +25128,12 @@ var TagsApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", + "Array", "" ); return body; @@ -23351,14 +25145,19 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteTag + * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals * @throws ApiException if the response code was not in [200, 299] */ - deleteTag(response) { + fetchPermissionsOfPrincipals(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "PermissionOfPrincipalsResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -23395,7 +25194,7 @@ var TagsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "PermissionOfPrincipalsResponse", "" ); return body; @@ -23407,16 +25206,16 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchTags + * @params response Response returned by the server for a request to fetchPermissionsOnMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchTags(response) { + fetchPermissionsOnMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "PermissionOfMetadataResponse", "" ); return body; @@ -23456,7 +25255,7 @@ var TagsApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "PermissionOfMetadataResponse", "" ); return body; @@ -23468,10 +25267,10 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to unassignTag + * @params response Response returned by the server for a request to publishMetadata * @throws ApiException if the response code was not in [200, 299] */ - unassignTag(response) { + publishMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23524,10 +25323,10 @@ var TagsApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateTag + * @params response Response returned by the server for a request to shareMetadata * @throws ApiException if the response code was not in [200, 299] */ - updateTag(response) { + shareMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -23576,175 +25375,144 @@ var TagsApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; - -// apis/ThoughtSpotRestApi.ts -var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.7.0.cl or later Activates a deactivated user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To activate an inactive user account, the API request body must include the following information: - Username or the GUID of the user account. - Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated. - Password for the user account. - * @param activateUserRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to unpublishMetadata + * @throws ApiException if the response code was not in [200, 299] */ - activateUser(activateUserRequest, _options) { + unpublishMetadata(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (activateUserRequest === null || activateUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "activateUser", "activateUserRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/users/activate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(activateUserRequest, "ActivateUserRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. - * @param assignChangeAuthorRequest - */ - assignChangeAuthor(assignChangeAuthorRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "assignChangeAuthor", "assignChangeAuthorRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/security/metadata/assign"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. - * @param assignTagRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateColumnSecurityRules + * @throws ApiException if the response code was not in [200, 299] */ - assignTag(assignTagRequest, _options) { + updateColumnSecurityRules(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "assignTag", "assignTagRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/tags/assign"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Bad request - Invalid parameters or table not found", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.0.0.cl or later Updates the current password of the user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param changeUserPasswordRequest - */ - changeUserPassword(changeUserPasswordRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (changeUserPasswordRequest === null || changeUserPasswordRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "changeUserPassword", "changeUserPasswordRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to modify security rules for this table", body, response.headers); } - const localVarPath = "/api/rest/2.0/users/change-password"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(changeUserPasswordRequest, "ChangeUserPasswordRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/SystemApi.ts +var SystemApiRequestFactory = class extends BaseAPIRequestFactory { /** - * Version: 9.2.0.cl or later Commits TML files of metadata objects to the Git branch configured on your instance. Requires at least edit access to objects used in the commit operation. Before using this endpoint to push your commits: * Enable Git integration on your instance. * Make sure the Git repository and branch details are configured on your instance. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). - * @param commitBranchRequest + * 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. + * @param configureCommunicationChannelPreferencesRequest */ - commitBranch(commitBranchRequest, _options) { + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (commitBranchRequest === null || commitBranchRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "commitBranch", "commitBranchRequest"); + if (configureCommunicationChannelPreferencesRequest === null || configureCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("SystemApi", "configureCommunicationChannelPreferences", "configureCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/branches/commit"; + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/configure"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(commitBranchRequest, "CommitBranchRequest", ""), + ObjectSerializer.serialize(configureCommunicationChannelPreferencesRequest, "ConfigureCommunicationChannelPreferencesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23761,29 +25529,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. - * @param connectionConfigurationSearchRequest + * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ - connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { + getSystemConfig(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); - } - const localVarPath = "/api/rest/2.0/connection-configurations/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/system/config"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -23797,29 +25553,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` - * @param convertWorksheetToModelRequest + * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ - convertWorksheetToModel(convertWorksheetToModelRequest, _options) { + getSystemInformation(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/system"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -23833,29 +25577,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. - * @param copyObjectRequest + * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. */ - copyObject(copyObjectRequest, _options) { + getSystemOverrideInfo(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (copyObjectRequest === null || copyObjectRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "copyObject", "copyObjectRequest"); - } - const localVarPath = "/api/rest/2.0/metadata/copyobject"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/system/config-overrides"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -23869,26 +25601,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` - * @param createCalendarRequest + * 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. + * @param searchCommunicationChannelPreferencesRequest */ - createCalendar(createCalendarRequest, _options) { + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createCalendarRequest === null || createCalendarRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createCalendar", "createCalendarRequest"); + if (searchCommunicationChannelPreferencesRequest === null || searchCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("SystemApi", "searchCommunicationChannelPreferences", "searchCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/calendars/create"; + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), + ObjectSerializer.serialize(searchCommunicationChannelPreferencesRequest, "SearchCommunicationChannelPreferencesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23905,26 +25638,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Allows you to connect a ThoughtSpot instance to a Git repository. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. You can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository. Before using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites: * You have a Git repository. If you are using GitHub, make sure you have a valid account and an access token to connect ThoughtSpot to GitHub. For information about generating a token, see [GitHub Documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). * Your access token has `repo` scope that grants full access to public and private repositories. * Your Git repository has a branch that can be configured as a default branch in ThoughtSpot. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration). **Note**: ThoughtSpot supports only GitHub / itHub Enterprise for CI/CD. - * @param createConfigRequest + * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. + * @param updateSystemConfigRequest */ - createConfig(createConfigRequest, _options) { + updateSystemConfig(updateSystemConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createConfigRequest === null || createConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConfig", "createConfigRequest"); + if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { + throw new RequiredError("SystemApi", "updateSystemConfig", "updateSystemConfigRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/config/create"; + const localVarPath = "/api/rest/2.0/system/config-update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConfigRequest, "CreateConfigRequest", ""), + ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -23940,279 +25674,390 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var SystemApiResponseProcessor = class { /** - * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. - * @param createConnectionRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] */ - createConnection(createConnectionRequest, _options) { + configureCommunicationChannelPreferences(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConnectionRequest === null || createConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConnection", "createConnectionRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - const localVarPath = "/api/rest/2.0/connection/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. - * @param createConnectionConfigurationRequest - */ - createConnectionConfiguration(createConnectionConfigurationRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/connection-configurations/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * 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 + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSystemConfig + * @throws ApiException if the response code was not in [200, 299] */ - createConversation(createConversationRequest, _options) { + getSystemConfig(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createConversationRequest === null || createConversationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createConversation", "createConversationRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemConfig", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/ai/conversation/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createConversationRequest, "CreateConversationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param createCustomActionRequest - */ - createCustomAction(createCustomActionRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createCustomActionRequest === null || createCustomActionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createCustomAction", "createCustomActionRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/customization/custom-actions"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemConfig", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param createEmailCustomizationRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSystemInformation + * @throws ApiException if the response code was not in [200, 299] */ - createEmailCustomization(createEmailCustomizationRequest, _options) { + getSystemInformation(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createEmailCustomization", "createEmailCustomizationRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemInfo", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/customization/email"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemInfo", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param createOrgRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSystemOverrideInfo + * @throws ApiException if the response code was not in [200, 299] */ - createOrg(createOrgRequest, _options) { + getSystemOverrideInfo(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createOrgRequest === null || createOrgRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createOrg", "createOrgRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemOverrideInfo", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/orgs/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SystemOverrideInfo", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param createRoleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] */ - createRole(createRoleRequest, _options) { + searchCommunicationChannelPreferences(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (createRoleRequest === null || createRoleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createRole", "createRoleRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommunicationChannelPreferencesResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/roles/create"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommunicationChannelPreferencesResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). - * @param createScheduleRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateSystemConfig + * @throws ApiException if the response code was not in [200, 299] */ - createSchedule(createScheduleRequest, _options) { + updateSystemConfig(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/TagsApi.ts +var TagsApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. + * @param assignTagRequest + */ + assignTag(assignTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createScheduleRequest === null || createScheduleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createSchedule", "createScheduleRequest"); + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("TagsApi", "assignTag", "assignTagRequest"); } - const localVarPath = "/api/rest/2.0/schedules/create"; + const localVarPath = "/api/rest/2.0/tags/assign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24237,12 +26082,13 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { var _a, _b, _c; let _config = _options || this.configuration; if (createTagRequest === null || createTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createTag", "createTagRequest"); + throw new RequiredError("TagsApi", "createTag", "createTagRequest"); } const localVarPath = "/api/rest/2.0/tags/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -24265,29 +26111,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a user in ThoughtSpot. The API endpoint allows you to configure several user properties such as email address, account status, share notification preferences, and sharing visibility. You can provision the user to [groups](https://docs.thoughtspot.com/cloud/latest/groups-privileges) and [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview). You can also add Liveboard, Answer, and Worksheet objects to the user’s favorites list, assign a default Liveboard for the user, and set user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param createUserRequest + * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Tag identifier Tag name or Tag id. */ - createUser(createUserRequest, _options) { + deleteTag(tagIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createUserRequest === null || createUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createUser", "createUserRequest"); + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("TagsApi", "deleteTag", "tagIdentifier"); } - const localVarPath = "/api/rest/2.0/users/create"; + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createUserRequest, "CreateUserRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24301,26 +26139,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard - * @param createUserGroupRequest + * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. + * @param searchTagsRequest */ - createUserGroup(createUserGroupRequest, _options) { + searchTags(searchTagsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createUserGroupRequest === null || createUserGroupRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createUserGroup", "createUserGroupRequest"); + if (searchTagsRequest === null || searchTagsRequest === void 0) { + throw new RequiredError("TagsApi", "searchTags", "searchTagsRequest"); } - const localVarPath = "/api/rest/2.0/groups/create"; + const localVarPath = "/api/rest/2.0/tags/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), + ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24337,26 +26176,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. 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 operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid - * @param createVariableRequest + * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. + * @param assignTagRequest */ - createVariable(createVariableRequest, _options) { + unassignTag(assignTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (createVariableRequest === null || createVariableRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "createVariable", "createVariableRequest"); + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("TagsApi", "unassignTag", "assignTagRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/create"; + const localVarPath = "/api/rest/2.0/tags/unassign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(createVariableRequest, "CreateVariableRequest", ""), + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24373,80 +26213,34 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Name or Id of the tag. + * @param updateTagRequest */ - dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + updateTag(tagIdentifier, updateTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionName === null || connectionName === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "connectionName"); + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("TagsApi", "updateTag", "tagIdentifier"); } - if (databaseName === null || databaseName === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "databaseName"); + if (updateTagRequest === null || updateTagRequest === void 0) { + throw new RequiredError("TagsApi", "updateTag", "updateTagRequest"); } - const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24459,169 +26253,380 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { return requestContext; }); } +}; +var TagsApiResponseProcessor = class { /** - * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param fileContent 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’ + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to assignTag + * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { + assignTag(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" - ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. - * @param dbtConnectionIdentifier Unique ID of the DBT connection. - * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED - * @param fileContent 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’ + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createTag + * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { + createTag(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "dbtConnectionIdentifier"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Tag", + "" + ); + return body; } - if (importWorksheets === null || importWorksheets === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "importWorksheets"); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const localVarPath = "/api/rest/2.0/dbt/generate-tml"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" - ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - if (modelTables !== void 0) { - localVarFormParams.append("model_tables", modelTables); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - if (importWorksheets !== void 0) { - localVarFormParams.append("import_worksheets", importWorksheets); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Tag", + "" + ); + return body; } - if (worksheets !== void 0) { - localVarFormParams.append("worksheets", worksheets); + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteTag + * @throws ApiException if the response code was not in [200, 299] + */ + deleteTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - return requestContext; + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchTags + * @throws ApiException if the response code was not in [200, 299] */ - dbtSearch(_options) { + searchTags(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/dbt/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - return requestContext; + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.7.0.cl or later Deactivates a user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To deactivate a user account, the API request body must include the following information: - Username or the GUID of the user account - Base URL of the ThoughtSpot instance If the API request is successful, ThoughtSpot returns the activation URL in the response. The activation URL is valid for 14 days and can be used to re-activate the account and reset the password of the deactivated account. - * @param deactivateUserRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to unassignTag + * @throws ApiException if the response code was not in [200, 299] */ - deactivateUser(deactivateUserRequest, _options) { + unassignTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateTag + * @throws ApiException if the response code was not in [200, 299] + */ + updateTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } +}; + +// apis/ThoughtSpotRestApi.ts +var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * Version: 9.7.0.cl or later Activates a deactivated user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To activate an inactive user account, the API request body must include the following information: - Username or the GUID of the user account. - Auth token generated for the deactivated user. The auth token is sent in the API response when a user is deactivated. - Password for the user account. + * @param activateUserRequest + */ + activateUser(activateUserRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deactivateUserRequest === null || deactivateUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deactivateUser", "deactivateUserRequest"); + if (activateUserRequest === null || activateUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "activateUser", "activateUserRequest"); } - const localVarPath = "/api/rest/2.0/users/deactivate"; + const localVarPath = "/api/rest/2.0/users/activate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deactivateUserRequest, "DeactivateUserRequest", ""), + ObjectSerializer.serialize(activateUserRequest, "ActivateUserRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24638,20 +26643,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. - * @param calendarIdentifier Unique ID or name of the Calendar. + * Version: 9.0.0.cl or later Transfers the ownership of one or several objects from one user to another. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege and edit access to the objects are required. + * @param assignChangeAuthorRequest */ - deleteCalendar(calendarIdentifier, _options) { + assignChangeAuthor(assignChangeAuthorRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteCalendar", "calendarIdentifier"); + if (assignChangeAuthorRequest === null || assignChangeAuthorRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "assignChangeAuthor", "assignChangeAuthorRequest"); } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const localVarPath = "/api/rest/2.0/security/metadata/assign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(assignChangeAuthorRequest, "AssignChangeAuthorRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24665,26 +26680,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Deletes Git repository configuration from your ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. - * @param deleteConfigRequest + * Version: 9.0.0.cl or later Assigns tags to Liveboards, Answers, Tables, and Worksheets. Requires edit access to the metadata object. + * @param assignTagRequest */ - deleteConfig(deleteConfigRequest, _options) { + assignTag(assignTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConfigRequest === null || deleteConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConfig", "deleteConfigRequest"); + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "assignTag", "assignTagRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/config/delete"; + const localVarPath = "/api/rest/2.0/tags/assign"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConfigRequest, "DeleteConfigRequest", ""), + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24701,26 +26717,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. - * @param deleteConnectionRequest + * Version: 9.0.0.cl or later Updates the current password of the user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param changeUserPasswordRequest */ - deleteConnection(deleteConnectionRequest, _options) { + changeUserPassword(changeUserPasswordRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConnection", "deleteConnectionRequest"); + if (changeUserPasswordRequest === null || changeUserPasswordRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "changeUserPassword", "changeUserPasswordRequest"); } - const localVarPath = "/api/rest/2.0/connection/delete"; + const localVarPath = "/api/rest/2.0/users/change-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), + ObjectSerializer.serialize(changeUserPasswordRequest, "ChangeUserPasswordRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24737,26 +26754,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - * @param deleteConnectionConfigurationRequest + * Version: 9.2.0.cl or later Commits TML files of metadata objects to the Git branch configured on your instance. Requires at least edit access to objects used in the commit operation. Before using this endpoint to push your commits: * Enable Git integration on your instance. * Make sure the Git repository and branch details are configured on your instance. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). + * @param commitBranchRequest */ - deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { + commitBranch(commitBranchRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); + if (commitBranchRequest === null || commitBranchRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "commitBranch", "commitBranchRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/delete"; + const localVarPath = "/api/rest/2.0/vcs/git/branches/commit"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(commitBranchRequest, "CommitBranchRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24773,20 +26791,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. - * @param connectionIdentifier Unique ID or name of the connection. + * 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. + * @param configureCommunicationChannelPreferencesRequest */ - deleteConnectionV2(connectionIdentifier, _options) { + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionV2", "connectionIdentifier"); + if (configureCommunicationChannelPreferencesRequest === null || configureCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "configureCommunicationChannelPreferences", "configureCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/configure"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(configureCommunicationChannelPreferencesRequest, "ConfigureCommunicationChannelPreferencesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24800,20 +26828,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param customActionIdentifier Unique ID or name of the custom action. + * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. + * @param connectionConfigurationSearchRequest */ - deleteCustomAction(customActionIdentifier, _options) { + connectionConfigurationSearch(connectionConfigurationSearchRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteCustomAction", "customActionIdentifier"); + if (connectionConfigurationSearchRequest === null || connectionConfigurationSearchRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "connectionConfigurationSearch", "connectionConfigurationSearchRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/connection-configurations/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(connectionConfigurationSearchRequest, "ConnectionConfigurationSearchRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24827,20 +26865,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * Convert worksheets to models Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (Can manage data models). --- ## Usage Guidelines ### Parameters 1. **worksheet_ids** - **Description:** A comma-separated list of GUIDs (Globally Unique Identifiers) specifying the Worksheets to be converted. - **Usage:** - Used only when `convert_all` is set to `false`. - Leave empty or omit when `convert_all` is set to `true`. 2. **exclude_worksheet_ids** - **Description:** A comma-separated list of GUIDs specifying Worksheets to be excluded from conversion. - **Usage:** - Useful when `convert_all` is set to `true` and specific Worksheets should not be converted. 3. **convert_all** - **Description:** Sets the scope of conversion. - **Options:** - `true`: Converts all Worksheets in the system, except those specified in `exclude_worksheet_ids`. - `false`: Converts only the Worksheets listed in `worksheet_ids`. 4. **apply_changes** - **Description:** Specifies whether to apply changes directly to ThoughtSpot or to generate a preview before applying any changes.Used for validation of conversion. - **Options:** - `true`: Applies conversion changes directly to ThoughtSpot. - `false`: Generates only a preview of the changes and does not apply any changes to ThoughtSpot --- ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the conversion process 2. **Partial Conversion for Testing:** Test the conversion process by setting `convert_all` to `false` and specifying a small number of `worksheet_ids`. 3. **Verify Dependencies:** Check for dependent objects, such as Tables and Connections, to avoid invalid references. 4. **Review Changes:** Use `apply_changes: false` to preview the impact of the conversion before applying changes. --- ## Examples ### Convert Specific Worksheets ```json { \"worksheet_ids\": [\"guid1\", \"guid2\", \"guid3\"], \"exclude_worksheet_ids\": [], \"convert_all\": false, \"apply_changes\": true } ``` ### Convert All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [], \"convert_all\": true, \"apply_changes\": true } ``` ### Exclude Specific Worksheets While Converting All Accessible Worksheets ```json { \"worksheet_ids\": [], \"exclude_worksheet_ids\": [\"abc\"], \"convert_all\": true, \"apply_changes\": true } ``` + * @param convertWorksheetToModelRequest */ - deleteDbtConnection(dbtConnectionIdentifier, _options) { + convertWorksheetToModel(convertWorksheetToModelRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteDbtConnection", "dbtConnectionIdentifier"); + if (convertWorksheetToModelRequest === null || convertWorksheetToModelRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "convertWorksheetToModel", "convertWorksheetToModelRequest"); } - const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/worksheets/convert"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(convertWorksheetToModelRequest, "ConvertWorksheetToModelRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24854,20 +26902,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. - * @param templateIdentifier Unique ID or name of the email customization. + * 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. + * @param copyObjectRequest */ - deleteEmailCustomization(templateIdentifier, _options) { + copyObject(copyObjectRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (templateIdentifier === null || templateIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteEmailCustomization", "templateIdentifier"); + if (copyObjectRequest === null || copyObjectRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "copyObject", "copyObjectRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/copyobject"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(copyObjectRequest, "CopyObjectRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24881,26 +26939,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. - * @param deleteMetadataRequest + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest */ - deleteMetadata(deleteMetadataRequest, _options) { + createAgentConversation(createAgentConversationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteMetadata", "deleteMetadataRequest"); + if (createAgentConversationRequest === null || createAgentConversationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createAgentConversation", "createAgentConversationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/delete"; + const localVarPath = "/api/rest/2.0/ai/agent/conversation/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), + ObjectSerializer.serialize(createAgentConversationRequest, "CreateAgentConversationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24917,20 +26976,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. - * @param orgIdentifier ID or name of the Org + * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` + * @param createCalendarRequest */ - deleteOrg(orgIdentifier, _options) { + createCalendar(createCalendarRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteOrg", "orgIdentifier"); + if (createCalendarRequest === null || createCalendarRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createCalendar", "createCalendarRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/calendars/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCalendarRequest, "CreateCalendarRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -24944,26 +27013,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. - * @param deleteOrgEmailCustomizationRequest + * Version: 9.2.0.cl or later Allows you to connect a ThoughtSpot instance to a Git repository. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. You can use this API endpoint to connect your ThoughtSpot development and production environments to the development and production branches of a Git repository. Before using this endpoint to connect your ThoughtSpot instance to a Git repository, check the following prerequisites: * You have a Git repository. If you are using GitHub, make sure you have a valid account and an access token to connect ThoughtSpot to GitHub. For information about generating a token, see [GitHub Documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). * Your access token has `repo` scope that grants full access to public and private repositories. * Your Git repository has a branch that can be configured as a default branch in ThoughtSpot. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/?pageid=git-integration). **Note**: ThoughtSpot supports only GitHub / itHub Enterprise for CI/CD. + * @param createConfigRequest */ - deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { + createConfig(createConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); + if (createConfigRequest === null || createConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConfig", "createConfigRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/delete"; + const localVarPath = "/api/rest/2.0/vcs/git/config/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), + ObjectSerializer.serialize(createConfigRequest, "CreateConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -24980,20 +27050,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. + * Version: 9.2.0.cl or later Creates a connection to a data warehouse for live query services. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Create a connection without tables To create a connection without tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes in `data_warehouse_config`. The following example shows the configuration attributes for a SnowFlake connection: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ ] } ``` 2. Set `validate` to `false`. #### Create a connection with tables To create a connection with tables: 1. Pass these parameters in your API request. * Name of the connection. * Type of the data warehouse to connect to. * A JSON map of configuration attributes, database details, and table properties in `data_warehouse_config` as shown in the following example: ``` { \"configuration\":{ \"accountName\":\"thoughtspot_partner\", \"user\":\"tsadmin\", \"password\":\"TestConn123\", \"role\":\"sysadmin\", \"warehouse\":\"MEDIUM_WH\" }, \"externalDatabases\":[ { \"name\":\"AllDatatypes\", \"isAutoCreated\":false, \"schemas\":[ { \"name\":\"alldatatypes\", \"tables\":[ { \"name\":\"allDatatypes\", \"type\":\"TABLE\", \"description\":\"\", \"selected\":true, \"linked\":true, \"columns\":[ { \"name\":\"CNUMBER\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" }, { \"name\":\"CDECIMAL\", \"type\":\"INT64\", \"canImport\":true, \"selected\":true, \"isLinkedActive\":true, \"isImported\":false, \"tableName\":\"allDatatypes\", \"schemaName\":\"alldatatypes\", \"dbName\":\"AllDatatypes\" } ] } ] } ] } ] } ``` 2. Set `validate` to `true`. + * @param createConnectionRequest */ - deleteRole(roleIdentifier, _options) { + createConnection(createConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteRole", "roleIdentifier"); + if (createConnectionRequest === null || createConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConnection", "createConnectionRequest"); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const localVarPath = "/api/rest/2.0/connection/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConnectionRequest, "CreateConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25007,20 +27087,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. - * @param scheduleIdentifier Unique ID or name of the scheduled job. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. + * @param createConnectionConfigurationRequest */ - deleteSchedule(scheduleIdentifier, _options) { + createConnectionConfiguration(createConnectionConfigurationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteSchedule", "scheduleIdentifier"); + if (createConnectionConfigurationRequest === null || createConnectionConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConnectionConfiguration", "createConnectionConfigurationRequest"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/connection-configurations/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConnectionConfigurationRequest, "CreateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25034,20 +27124,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Tag identifier Tag name or Tag id. + * 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 */ - deleteTag(tagIdentifier, _options) { + createConversation(createConversationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteTag", "tagIdentifier"); + if (createConversationRequest === null || createConversationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createConversation", "createConversationRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/ai/conversation/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createConversationRequest, "CreateConversationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25061,20 +27161,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Deletes a user from the ThoughtSpot system. If you want to remove a user from a specific Org but not from ThoughtSpot, update the group and Org mapping properties of the user object via a POST API call to the [/api/rest/2.0/users/{user_identifier}/update](#/http/api-endpoints/users/update-user) endpoint. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param userIdentifier GUID / name of the user + * Version: 9.6.0.cl or later Creates a custom action that appears as a menu action on a saved Answer or Liveboard visualization. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API lets you create the following types of custom actions: * URL-based action Allows pushing data to an external URL. * Callback action Triggers a callback to the host application and initiates a response payload on an embedded ThoughtSpot instance. By default, custom actions are visible to only administrator or developer users. To make a custom action available to other users, and specify the groups in `group_identifiers`. By default, the custom action is set as a _global_ action on all visualizations and saved Answers. To assign a custom action to specific Liveboard visualization, saved Answer, or Worksheet, set `visibility` to `false` in `default_action_config` property and specify the GUID or name of the object in `associate_metadata`. For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param createCustomActionRequest */ - deleteUser(userIdentifier, _options) { + createCustomAction(createCustomActionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (userIdentifier === null || userIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteUser", "userIdentifier"); + if (createCustomActionRequest === null || createCustomActionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createCustomAction", "createCustomActionRequest"); } - const localVarPath = "/api/rest/2.0/users/{user_identifier}/delete".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); + const localVarPath = "/api/rest/2.0/customization/custom-actions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createCustomActionRequest, "CreateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25088,20 +27198,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. - * @param groupIdentifier GUID or name of the group. + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param createEmailCustomizationRequest */ - deleteUserGroup(groupIdentifier, _options) { + createEmailCustomization(createEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteUserGroup", "groupIdentifier"); + if (createEmailCustomizationRequest === null || createEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createEmailCustomization", "createEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); + const localVarPath = "/api/rest/2.0/customization/email"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createEmailCustomizationRequest, "CreateEmailCustomizationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25115,20 +27235,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 - * @param identifier Unique id or name of the variable + * Version: 9.0.0.cl or later Creates an Org object. To use this API, the [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview) feature must be enabled in your cluster. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param createOrgRequest */ - deleteVariable(identifier, _options) { + createOrg(createOrgRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (identifier === null || identifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deleteVariable", "identifier"); + if (createOrgRequest === null || createOrgRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createOrg", "createOrgRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/{identifier}/delete".replace("{identifier}", encodeURIComponent(String(identifier))); + const localVarPath = "/api/rest/2.0/orgs/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createOrgRequest, "CreateOrgRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25142,26 +27272,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). - * @param deployCommitRequest + * Version: 9.5.0.cl or later Creates a Role object in ThoughtSpot. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To create a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param createRoleRequest */ - deployCommit(deployCommitRequest, _options) { + createRole(createRoleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (deployCommitRequest === null || deployCommitRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "deployCommit", "deployCommitRequest"); + if (createRoleRequest === null || createRoleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createRole", "createRoleRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/commits/deploy"; + const localVarPath = "/api/rest/2.0/roles/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(deployCommitRequest, "DeployCommitRequest", ""), + ObjectSerializer.serialize(createRoleRequest, "CreateRoleRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25178,20 +27309,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection + * Create schedule. Version: 9.4.0.cl or later Creates a Liveboard schedule job. Requires at least edit access to Liveboards. To create a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. #### Usage guidelines * The description text is mandatory. The description text appears as **Description: ** in the Liveboard schedule email notifications. * For Liveboards with both charts and tables, schedule creation is only supported in PDF and XLS formats. Schedules created in CSV formats for such Liveboards will fail to run. If `PDF` is set as the `file_format`, enable `pdf_options` to get the correct attachment. Not doing so may cause the attachment to be rendered empty. * To include only specific visualizations, specify the visualization GUIDs in the `visualization_identifiers` array. * You can schedule a Liveboard job to run periodically by setting frequency parameters. You can set the schedule to run daily, weekly, monthly or every n minutes or hours. The scheduled job can also be configured to run at a specific time of the day or on specific days of the week or month. Please ensure that when setting the schedule frequency for _minute of the object_, only values that are multiples of 5 are included. * If the `frequency` parameters are defined, you can set the time zone to a value that matches your server\'s time zone. For example, `US/Central`, `Etc/UTC`, `CET`. The default time zone is `America/Los_Angeles`. For more information about Liveboard jobs, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/liveboard-schedule). + * @param createScheduleRequest */ - downloadConnectionMetadataChanges(connectionIdentifier, _options) { + createSchedule(createScheduleRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); + if (createScheduleRequest === null || createScheduleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createSchedule", "createScheduleRequest"); } - const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/schedules/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createScheduleRequest, "CreateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25205,26 +27346,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. - * @param exportAnswerReportRequest + * Version: 9.0.0.cl or later Creates a tag object. Tags 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. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param createTagRequest */ - exportAnswerReport(exportAnswerReportRequest, _options) { + createTag(createTagRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportAnswerReport", "exportAnswerReportRequest"); + if (createTagRequest === null || createTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createTag", "createTagRequest"); } - const localVarPath = "/api/rest/2.0/report/answer"; + const localVarPath = "/api/rest/2.0/tags/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), + ObjectSerializer.serialize(createTagRequest, "CreateTagRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25241,26 +27383,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. - * @param exportLiveboardReportRequest + * Version: 9.0.0.cl or later Creates a user in ThoughtSpot. The API endpoint allows you to configure several user properties such as email address, account status, share notification preferences, and sharing visibility. You can provision the user to [groups](https://docs.thoughtspot.com/cloud/latest/groups-privileges) and [Orgs](https://docs.thoughtspot.com/cloud/latest/orgs-overview). You can also add Liveboard, Answer, and Worksheet objects to the user’s favorites list, assign a default Liveboard for the user, and set user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param createUserRequest */ - exportLiveboardReport(exportLiveboardReportRequest, _options) { + createUser(createUserRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportLiveboardReport", "exportLiveboardReportRequest"); + if (createUserRequest === null || createUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createUser", "createUserRequest"); } - const localVarPath = "/api/rest/2.0/report/liveboard"; + const localVarPath = "/api/rest/2.0/users/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), + ObjectSerializer.serialize(createUserRequest, "CreateUserRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25277,26 +27420,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). - * @param exportMetadataTMLRequest + * Version: 9.0.0.cl or later Creates a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### About groups Groups in ThoughtSpot are used by the administrators to define privileges and organize users based on their roles and access requirements. To know more about groups and privileges, see [ThoughtSpot Product Documentation](https://docs.thoughtspot.com/cloud/latest/groups-privileges). #### Supported operations The API endpoint lets you perform the following operations: * Assign privileges * Add users * Define sharing visibility * Add sub-groups * Assign a default Liveboard + * @param createUserGroupRequest */ - exportMetadataTML(exportMetadataTMLRequest, _options) { + createUserGroup(createUserGroupRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTML", "exportMetadataTMLRequest"); + if (createUserGroupRequest === null || createUserGroupRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createUserGroup", "createUserGroupRequest"); } - const localVarPath = "/api/rest/2.0/metadata/tml/export"; + const localVarPath = "/api/rest/2.0/groups/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), + ObjectSerializer.serialize(createUserGroupRequest, "CreateUserGroupRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25313,26 +27457,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. - * @param exportMetadataTMLBatchedRequest + * 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid + * @param createVariableRequest */ - exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { + createVariable(createVariableRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); + if (createVariableRequest === null || createVariableRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createVariable", "createVariableRequest"); } - const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; + const localVarPath = "/api/rest/2.0/template/variables/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), + ObjectSerializer.serialize(createVariableRequest, "CreateVariableRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25349,26 +27494,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). - * @param fetchAnswerDataRequest + * 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. + * @param createWebhookConfigurationRequest */ - fetchAnswerData(fetchAnswerDataRequest, _options) { + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerData", "fetchAnswerDataRequest"); + if (createWebhookConfigurationRequest === null || createWebhookConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "createWebhookConfiguration", "createWebhookConfigurationRequest"); } - const localVarPath = "/api/rest/2.0/metadata/answer/data"; + const localVarPath = "/api/rest/2.0/webhooks/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), + ObjectSerializer.serialize(createWebhookConfigurationRequest, "CreateWebhookConfigurationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25385,29 +27531,81 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` - * @param fetchAnswerSqlQueryRequest + * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' */ - fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { + dbtConnection(connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); + if (connectionName === null || connectionName === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "connectionName"); } - const localVarPath = "/api/rest/2.0/metadata/answer/sql"; + if (databaseName === null || databaseName === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtConnection", "databaseName"); + } + const localVarPath = "/api/rest/2.0/dbt/dbt-connection"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25421,29 +27619,46 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. - * @param fetchAsyncImportTaskStatusRequest + * Version: 9.9.0.cl or later Resynchronize the existing list of models, tables, worksheet tml’s and import them to Thoughtspot based on the DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param fileContent 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’ */ - fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { + dbtGenerateSyncTml(dbtConnectionIdentifier, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateSyncTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; + const localVarPath = "/api/rest/2.0/dbt/generate-sync-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25457,29 +27672,64 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` - * @param fetchColumnSecurityRulesRequest + * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. + * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' + * @param importWorksheets Mention the worksheet tmls to import + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] + * @param fileContent 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’ */ - fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "dbtConnectionIdentifier"); } - const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; + if (modelTables === null || modelTables === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "modelTables"); + } + if (importWorksheets === null || importWorksheets === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "dbtGenerateTml", "importWorksheets"); + } + const localVarPath = "/api/rest/2.0/dbt/generate-tml"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (modelTables !== void 0) { + localVarFormParams.append("model_tables", modelTables); + } + if (importWorksheets !== void 0) { + localVarFormParams.append("import_worksheets", importWorksheets); + } + if (worksheets !== void 0) { + localVarFormParams.append("worksheets", worksheets); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25493,20 +27743,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. - * @param connectionIdentifier GUID of the connection + * Version: 9.9.0.cl or later Gets a list of DBT connection objects by user and organization, available on the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About search DBT connection To get details of a specific DBT connection identifier, database connection identifier, database connection name, database name, project name, project identifier, environment identifier , import type and author. */ - fetchConnectionDiffStatus(connectionIdentifier, _options) { + dbtSearch(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchConnectionDiffStatus", "connectionIdentifier"); - } - const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/dbt/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25520,26 +27767,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). - * @param fetchLiveboardDataRequest + * Version: 9.7.0.cl or later Deactivates a user account. Requires `ADMINISTRATION` (**Can administer Thoughtspot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. To deactivate a user account, the API request body must include the following information: - Username or the GUID of the user account - Base URL of the ThoughtSpot instance If the API request is successful, ThoughtSpot returns the activation URL in the response. The activation URL is valid for 14 days and can be used to re-activate the account and reset the password of the deactivated account. + * @param deactivateUserRequest */ - fetchLiveboardData(fetchLiveboardDataRequest, _options) { + deactivateUser(deactivateUserRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); + if (deactivateUserRequest === null || deactivateUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deactivateUser", "deactivateUserRequest"); } - const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; + const localVarPath = "/api/rest/2.0/users/deactivate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), + ObjectSerializer.serialize(deactivateUserRequest, "DeactivateUserRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25556,29 +27804,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` - * @param fetchLiveboardSqlQueryRequest + * Version: 10.12.0.cl or later Deletes a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines To delete a custom calendar, specify the calendar ID as a path parameter in the request URL. + * @param calendarIdentifier Unique ID or name of the Calendar. */ - fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { + deleteCalendar(calendarIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteCalendar", "calendarIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/delete".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25592,26 +27832,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). - * @param fetchLogsRequest + * Version: 9.2.0.cl or later Deletes Git repository configuration from your ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. + * @param deleteConfigRequest */ - fetchLogs(fetchLogsRequest, _options) { + deleteConfig(deleteConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchLogsRequest === null || fetchLogsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchLogs", "fetchLogsRequest"); + if (deleteConfigRequest === null || deleteConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConfig", "deleteConfigRequest"); } - const localVarPath = "/api/rest/2.0/logs/fetch"; + const localVarPath = "/api/rest/2.0/vcs/git/config/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), + ObjectSerializer.serialize(deleteConfigRequest, "DeleteConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25628,26 +27869,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. - * @param fetchPermissionsOfPrincipalsRequest + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Delete Connection V2](#/http/api-endpoints/connections/delete-connection-v2) endpoint to delete your connection objects. #### Usage guidelines Deletes 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. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. + * @param deleteConnectionRequest */ - fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { + deleteConnection(deleteConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); + if (deleteConnectionRequest === null || deleteConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConnection", "deleteConnectionRequest"); } - const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; + const localVarPath = "/api/rest/2.0/connection/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), + ObjectSerializer.serialize(deleteConnectionRequest, "DeleteConnectionRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25664,26 +27906,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. - * @param fetchPermissionsOnMetadataRequest + * Version: 10.12.0.cl or later Deletes connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. + * @param deleteConnectionConfigurationRequest */ - fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { + deleteConnectionConfiguration(deleteConnectionConfigurationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); + if (deleteConnectionConfigurationRequest === null || deleteConnectionConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionConfiguration", "deleteConnectionConfigurationRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; + const localVarPath = "/api/rest/2.0/connection-configurations/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), + ObjectSerializer.serialize(deleteConnectionConfigurationRequest, "DeleteConnectionConfigurationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -25700,29 +27943,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Enforces logout on current user sessions. Use this API with caution as it may invalidate active user sessions and force users to re-login. Make sure you specify the usernames or GUIDs. If you pass null values in the API call, all user sessions on your cluster become invalid, and the users are forced to re-login. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param forceLogoutUsersRequest + * Version: 10.4.0.cl or later Deletes a connection object. **Note**: If a connection has dependent objects, make sure you remove its associations before the delete operation. 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. + * @param connectionIdentifier Unique ID or name of the connection. */ - forceLogoutUsers(forceLogoutUsersRequest, _options) { + deleteConnectionV2(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (forceLogoutUsersRequest === null || forceLogoutUsersRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "forceLogoutUsers", "forceLogoutUsersRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteConnectionV2", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/users/force-logout"; + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/delete".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(forceLogoutUsersRequest, "ForceLogoutUsersRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25736,29 +27971,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. - * @param generateCSVRequest + * Version: 9.6.0.cl or later Removes the custom action specified in the API request. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param customActionIdentifier Unique ID or name of the custom action. */ - generateCSV(generateCSVRequest, _options) { + deleteCustomAction(customActionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (generateCSVRequest === null || generateCSVRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "generateCSV", "generateCSVRequest"); + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteCustomAction", "customActionIdentifier"); } - const localVarPath = "/api/rest/2.0/calendars/generate-csv"; + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/delete".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25772,16 +27999,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. + * Version: 9.9.0.cl or later Removes the specified DBT connection object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. */ - getCurrentUserInfo(_options) { + deleteDbtConnection(dbtConnectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/user"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteDbtConnection", "dbtConnectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/dbt/{dbt_connection_identifier}/delete".replace("{dbt_connection_identifier}", encodeURIComponent(String(dbtConnectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25795,16 +28027,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request + * Version: 10.10.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `template_identifier` from the response. - Use that `template_identifier` as a parameter in this API request. + * @param templateIdentifier Unique ID or name of the email customization. */ - getCurrentUserToken(_options) { + deleteEmailCustomization(templateIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/token"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (templateIdentifier === null || templateIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteEmailCustomization", "templateIdentifier"); + } + const localVarPath = "/api/rest/2.0/customization/email/{template_identifier}/delete".replace("{template_identifier}", encodeURIComponent(String(templateIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25818,29 +28055,35 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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. - * @param getCustomAccessTokenRequest + * Version: 9.0.0.cl or later Removes the specified metadata object from the ThoughtSpot system. Requires edit access to the metadata object. + * @param deleteMetadataRequest */ - getCustomAccessToken(getCustomAccessTokenRequest, _options) { + deleteMetadata(deleteMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); + if (deleteMetadataRequest === null || deleteMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteMetadata", "deleteMetadataRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/custom"; + const localVarPath = "/api/rest/2.0/metadata/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), + ObjectSerializer.serialize(deleteMetadataRequest, "DeleteMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -25849,29 +28092,26 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getFullAccessTokenRequest + * Version: 9.0.0.cl or later Deletes an Org object from the ThoughtSpot system. Requires cluster administration (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. When you delete an Org, all its users and objects created in that Org context are removed. However, if the users in the deleted Org also exists in other Orgs, they are removed only from the deleted Org. + * @param orgIdentifier ID or name of the Org */ - getFullAccessToken(getFullAccessTokenRequest, _options) { + deleteOrg(orgIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "getFullAccessToken", "getFullAccessTokenRequest"); + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteOrg", "orgIdentifier"); } - const localVarPath = "/api/rest/2.0/auth/token/full"; + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/delete".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -25880,29 +28120,35 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. - * @param getObjectAccessTokenRequest + * Version: 10.12.0.cl or later Deletes the configuration for the email customization. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines - Call the search API endpoint to get the `org_identifier` from the response. - Use that `org_identifier` as a parameter in this API request. + * @param deleteOrgEmailCustomizationRequest */ - getObjectAccessToken(getObjectAccessTokenRequest, _options) { + deleteOrgEmailCustomization(deleteOrgEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); + if (deleteOrgEmailCustomizationRequest === null || deleteOrgEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteOrgEmailCustomization", "deleteOrgEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/object"; + const localVarPath = "/api/rest/2.0/customization/email/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), + ObjectSerializer.serialize(deleteOrgEmailCustomizationRequest, "DeleteOrgEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -25911,16 +28157,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Version: 9.5.0.cl or later Deletes a Role object from the ThoughtSpot system. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To delete a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. ReadOnly roles cannot be deleted. */ - getSystemConfig(_options) { + deleteRole(roleIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteRole", "roleIdentifier"); + } + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/delete".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25934,16 +28185,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + * Deletes a scheduled job. Version: 9.4.0.cl or later Deletes a scheduled Liveboard job. Requires at least edit access to Liveboard or `ADMINISTRATION` (**Can administer Org**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. + * @param scheduleIdentifier Unique ID or name of the scheduled job. */ - getSystemInformation(_options) { + deleteSchedule(scheduleIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteSchedule", "scheduleIdentifier"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/delete".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25957,16 +28213,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. + * Version: 9.0.0.cl or later Deletes a tag object from the ThoughtSpot system Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Tag identifier Tag name or Tag id. */ - getSystemOverrideInfo(_options) { + deleteTag(tagIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/system/config-overrides"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteTag", "tagIdentifier"); + } + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/delete".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -25980,29 +28241,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). - * @param importMetadataTMLRequest + * Version: 9.0.0.cl or later Deletes a user from the ThoughtSpot system. If you want to remove a user from a specific Org but not from ThoughtSpot, update the group and Org mapping properties of the user object via a POST API call to the [/api/rest/2.0/users/{user_identifier}/update](#/http/api-endpoints/users/update-user) endpoint. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param userIdentifier GUID / name of the user */ - importMetadataTML(importMetadataTMLRequest, _options) { + deleteUser(userIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importMetadataTML", "importMetadataTMLRequest"); + if (userIdentifier === null || userIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteUser", "userIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/tml/import"; + const localVarPath = "/api/rest/2.0/users/{user_identifier}/delete".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26016,29 +28269,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. - * @param importMetadataTMLAsyncRequest + * Version: 9.0.0.cl or later Removes the specified group object from the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. + * @param groupIdentifier GUID or name of the group. */ - importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { + deleteUserGroup(groupIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteUserGroup", "groupIdentifier"); } - const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/delete".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26052,29 +28297,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. - * @param importUserGroupsRequest + * 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 + * @param identifier Unique id or name of the variable */ - importUserGroups(importUserGroupsRequest, _options) { + deleteVariable(identifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importUserGroups", "importUserGroupsRequest"); + if (identifier === null || identifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteVariable", "identifier"); } - const localVarPath = "/api/rest/2.0/groups/import"; + const localVarPath = "/api/rest/2.0/template/variables/{identifier}/delete".replace("{identifier}", encodeURIComponent(String(identifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26088,26 +28325,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Imports user data from external databases into ThoughtSpot. During the user import operation: * If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. Defining a `default_password` in the API request is optional. * If `delete_unspecified_users` is set to `true`, the users not specified in the API request, excluding the `tsadmin`, `guest`, `system` and `su` users, are deleted. * If the specified user objects are already available in ThoughtSpot, the object properties are updated and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param importUsersRequest + * 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. + * @param deleteWebhookConfigurationsRequest */ - importUsers(importUsersRequest, _options) { + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (importUsersRequest === null || importUsersRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "importUsers", "importUsersRequest"); + if (deleteWebhookConfigurationsRequest === null || deleteWebhookConfigurationsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deleteWebhookConfigurations", "deleteWebhookConfigurationsRequest"); } - const localVarPath = "/api/rest/2.0/users/import"; + const localVarPath = "/api/rest/2.0/webhooks/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(importUsersRequest, "ImportUsersRequest", ""), + ObjectSerializer.serialize(deleteWebhookConfigurationsRequest, "DeleteWebhookConfigurationsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26124,26 +28362,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. - * @param loginRequest + * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). + * @param deployCommitRequest */ - login(loginRequest, _options) { + deployCommit(deployCommitRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (loginRequest === null || loginRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "login", "loginRequest"); + if (deployCommitRequest === null || deployCommitRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "deployCommit", "deployCommitRequest"); } - const localVarPath = "/api/rest/2.0/auth/session/login"; + const localVarPath = "/api/rest/2.0/vcs/git/commits/deploy"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), + ObjectSerializer.serialize(deployCommitRequest, "DeployCommitRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26160,16 +28399,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Logs out a user from their current session. + * Version: 9.9.0.cl or later Exports the difference in connection metadata between CDW and ThoughtSpot Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) To download the connection metadata difference between ThoughtSpot and CDW, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - logout(_options) { + downloadConnectionMetadataChanges(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/auth/session/logout"; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "downloadConnectionMetadataChanges", "connectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/connections/download-connection-metadata-changes/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26183,26 +28427,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. - * @param parameterizeMetadataRequest + * Version: 9.0.0.cl or later Exports an Answer in the given file format. You can download the Answer data as a PDF, PNG, CSV, or XLSX file. Requires at least view access to the Answer. #### Usage guidelines In the request body, the GUID or name of the Answer and set `file_format`. The default file format is CSV. **NOTE**: * The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. * HTML rendering is not supported for PDF exports of Answers with tables. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. + * @param exportAnswerReportRequest */ - parameterizeMetadata(parameterizeMetadataRequest, _options) { + exportAnswerReport(exportAnswerReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "parameterizeMetadata", "parameterizeMetadataRequest"); + if (exportAnswerReportRequest === null || exportAnswerReportRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportAnswerReport", "exportAnswerReportRequest"); } - const localVarPath = "/api/rest/2.0/metadata/parameterize"; + const localVarPath = "/api/rest/2.0/report/answer"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), + ObjectSerializer.serialize(exportAnswerReportRequest, "ExportAnswerReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26219,26 +28464,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. - * @param publishMetadataRequest + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. + * @param exportLiveboardReportRequest */ - publishMetadata(publishMetadataRequest, _options) { + exportLiveboardReport(exportLiveboardReportRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (publishMetadataRequest === null || publishMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "publishMetadata", "publishMetadataRequest"); + if (exportLiveboardReportRequest === null || exportLiveboardReportRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportLiveboardReport", "exportLiveboardReportRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/publish"; + const localVarPath = "/api/rest/2.0/report/liveboard"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), + ObjectSerializer.serialize(exportLiveboardReportRequest, "ExportLiveboardReportRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26255,26 +28501,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.7.0.cl or later - * @param queryGetDecomposedQueryRequest + * Version: 9.0.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. Requires `DATADOWNLOADING` (**Can download Data**) and at least view access to the metadata object. #### Usage guidelines * You can export one or several objects by passing metadata object GUIDs in the `metadata` array. * When exporting TML content for a Liveboard or Answer object, you can set `export_associated` to `true` to retrieve TML content for underlying Worksheets, Tables, or Views, including the GUID of each object within the headers. When `export_associated` is set to `true`, consider retrieving one metadata object at a time. * Set `export_fqns` to `true` to add FQNs of the referenced objects in the TML content. For example, if you send an API request to retrieve TML for a Liveboard and its associated objects, the API returns the TML content with FQNs of the referenced Worksheet. Exporting TML with FQNs is useful if ThoughtSpot has multiple objects with the same name and you want to eliminate ambiguity when importing TML files into ThoughtSpot. It eliminates the need for adding FQNs of the referenced objects manually during the import operation. * To export only the TML of feedbacks associated with an object, set the GUID of the object as `identifier`, and set the `type` as `FEEDBACK` in the `metadata` array. * To export the TML of an object along with the feedbacks associated with it, set the GUID of the object as `identifier`, set the `type` as `LOGIAL_TABLE` in the `metadata` array, and set `export_with_associated_feedbacks` in `export_options` to true. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_export_a_tml). For more information on feedbacks, see [Feedback Documentation](https://docs.thoughtspot.com/cloud/latest/sage-feedback). + * @param exportMetadataTMLRequest */ - queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { + exportMetadataTML(exportMetadataTMLRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); + if (exportMetadataTMLRequest === null || exportMetadataTMLRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTML", "exportMetadataTMLRequest"); } - const localVarPath = "/api/rest/2.0/ai/analytical-questions"; + const localVarPath = "/api/rest/2.0/metadata/tml/export"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), + ObjectSerializer.serialize(exportMetadataTMLRequest, "ExportMetadataTMLRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26291,26 +28538,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Resets the password of a user account. Administrators can reset password on behalf of a user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param resetUserPasswordRequest + * Version: 10.1.0.cl or later Exports the [TML](https://docs.thoughtspot.com/cloud/latest/tml) representation of metadata objects in JSON or YAML format. ### **Permissions Required** Requires `DATAMANAGEMENT` (**Can manage data**) and `USERMANAGEMENT` (**Can manage users**) privileges. #### **Usage Guidelines** This API is only applicable for `USER`, `GROUP`, and `ROLES` metadata types. - `batch_offset` Indicates the starting position within the complete dataset from which the API should begin returning objects. Useful for paginating results efficiently. - `batch_size` Specifies the number of objects or items to retrieve in a single request. Helps control response size for better performance. - `edoc_format` Defines the format of the TML content. The exported metadata can be in JSON or YAML format. - `export_dependent` Specifies whether to include dependent metadata objects in the export. Ensures related objects are also retrieved if needed. - `all_orgs_override` Indicates whether the export operation applies across all organizations. Useful for multi-tenant environments where cross-org exports are required. + * @param exportMetadataTMLBatchedRequest */ - resetUserPassword(resetUserPasswordRequest, _options) { + exportMetadataTMLBatched(exportMetadataTMLBatchedRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (resetUserPasswordRequest === null || resetUserPasswordRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "resetUserPassword", "resetUserPasswordRequest"); + if (exportMetadataTMLBatchedRequest === null || exportMetadataTMLBatchedRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "exportMetadataTMLBatched", "exportMetadataTMLBatchedRequest"); } - const localVarPath = "/api/rest/2.0/users/reset-password"; + const localVarPath = "/api/rest/2.0/metadata/tml/export/batch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(resetUserPasswordRequest, "ResetUserPasswordRequest", ""), + ObjectSerializer.serialize(exportMetadataTMLBatchedRequest, "ExportMetadataTMLBatchedRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26327,30 +28575,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Reverts TML objects to a previous commit specified in the API request. Requires at least edit access to objects. In the API request, specify the `commit_id`. If the branch name is not specified in the request, the API will consider the default branch configured on your instance. By default, the API reverts all objects. If the revert operation fails for one of the objects provided in the commit, the API returns an error and does not revert any object. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). - * @param commitId Commit id to which the object should be reverted - * @param revertCommitRequest + * Version: 9.0.0.cl or later Fetches data from a saved Answer. Requires at least view access to the saved Answer. The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_apis). + * @param fetchAnswerDataRequest */ - revertCommit(commitId, revertCommitRequest, _options) { + fetchAnswerData(fetchAnswerDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (commitId === null || commitId === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "commitId"); - } - if (revertCommitRequest === null || revertCommitRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "revertCommitRequest"); + if (fetchAnswerDataRequest === null || fetchAnswerDataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerData", "fetchAnswerDataRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/commits/{commit_id}/revert".replace("{commit_id}", encodeURIComponent(String(commitId))); + const localVarPath = "/api/rest/2.0/metadata/answer/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(revertCommitRequest, "RevertCommitRequest", ""), + ObjectSerializer.serialize(fetchAnswerDataRequest, "FetchAnswerDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26367,26 +28612,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). - * @param revokeTokenRequest + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for an Answer object. Requires at least view access to the Answer object. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales\", \"metadata_type\":\"ANSWER\", \"sql_queries\":[ { \"metadata_id\":\"8fbe44a8-46ad-4b16-8d39-184b2fada490\", \"metadata_name\":\"Total sales -test\", \"sql_query\":\"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n \\\"ta_2\\\".\\\"PRODUCTNAME\\\" \\\"ca_2\\\", \\n \\\"ta_1\\\".\\\"STORENAME\\\" \\\"ca_3\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_4\\\", \\n CASE\\n WHEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_3\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_5\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_3\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_3\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_PRODUCTS\\\" \\\"ta_2\\\"\\n ON \\\"ta_3\\\".\\\"PRODUCTID\\\" = \\\"ta_2\\\".\\\"PRODUCTID\\\"\\nGROUP BY \\n \\\"ca_1\\\", \\n \\\"ca_2\\\", \\n \\\"ca_3\\\"\\n\" } ] } ``` + * @param fetchAnswerSqlQueryRequest */ - revokeToken(revokeTokenRequest, _options) { + fetchAnswerSqlQuery(fetchAnswerSqlQueryRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (revokeTokenRequest === null || revokeTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "revokeToken", "revokeTokenRequest"); + if (fetchAnswerSqlQueryRequest === null || fetchAnswerSqlQueryRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchAnswerSqlQuery", "fetchAnswerSqlQueryRequest"); } - const localVarPath = "/api/rest/2.0/auth/token/revoke"; + const localVarPath = "/api/rest/2.0/metadata/answer/sql"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), + ObjectSerializer.serialize(fetchAnswerSqlQueryRequest, "FetchAnswerSqlQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26403,26 +28649,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. - * @param searchCalendarsRequest + * Version: 10.4.0.cl or later Gets information about the status of the TML async import task scheduled using the `/api/rest/2.0/metadata/tml/async/import` API call. To fetch the task details, specify the ID of the TML async import task. Requires access to the task ID. The API allows users who initiated the asynchronous TML import via `/api/rest/2.0/metadata/tml/async/import` to view the status of their tasks. Users with administration privilege can view the status of all import tasks initiated by the users in their Org. #### Usage guidelines See [TML API Documentation](https://developers.thoughtspot.com/docs/tml#_fetch_status_of_the_tml_import_task) for usage guidelines. + * @param fetchAsyncImportTaskStatusRequest */ - searchCalendars(searchCalendarsRequest, _options) { + fetchAsyncImportTaskStatus(fetchAsyncImportTaskStatusRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchCalendars", "searchCalendarsRequest"); + if (fetchAsyncImportTaskStatusRequest === null || fetchAsyncImportTaskStatusRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchAsyncImportTaskStatus", "fetchAsyncImportTaskStatusRequest"); } - const localVarPath = "/api/rest/2.0/calendars/search"; + const localVarPath = "/api/rest/2.0/metadata/tml/async/status"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), + ObjectSerializer.serialize(fetchAsyncImportTaskStatusRequest, "FetchAsyncImportTaskStatusRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26439,26 +28686,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets a list of commits for a given metadata object. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. - * @param searchCommitsRequest + * Version: 10.12.0.cl or later Fetches column security rules for specified tables. This API endpoint retrieves column-level security rules configured for tables. It returns information about which columns are secured and which groups have access to those columns. #### Usage guidelines - Provide an array of table identifiers using either `identifier` (GUID or name) or `obj_identifier` (object ID) - At least one of `identifier` or `obj_identifier` must be provided for each table - The API returns column security rules for all specified tables - Users must have appropriate permissions to access security rules for the specified tables #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables #### Example request ```json { \"tables\": [ { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\" } ] } ``` #### Response format The API returns an array of `ColumnSecurityRuleResponse` objects wrapped in a `data` field. Each `ColumnSecurityRuleResponse` object contains: - Table information (GUID and object ID) - Array of column security rules with column details, group access, and source table information #### Example response ```json { \"data\": [ { \"guid\": \"table-guid\", \"objId\": \"table-object-id\", \"columnSecurityRules\": [ { \"column\": { \"id\": \"col_123\", \"name\": \"Salary\" }, \"groups\": [ { \"id\": \"group_1\", \"name\": \"HR Department\" } ], \"sourceTableDetails\": { \"id\": \"source-table-guid\", \"name\": \"Employee_Data\" } } ] } ] } ``` + * @param fetchColumnSecurityRulesRequest */ - searchCommits(searchCommitsRequest, _options) { + fetchColumnSecurityRules(fetchColumnSecurityRulesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCommitsRequest === null || searchCommitsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchCommits", "searchCommitsRequest"); + if (fetchColumnSecurityRulesRequest === null || fetchColumnSecurityRulesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchColumnSecurityRules", "fetchColumnSecurityRulesRequest"); } - const localVarPath = "/api/rest/2.0/vcs/git/commits/search"; + const localVarPath = "/api/rest/2.0/security/column/rules/fetch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCommitsRequest, "SearchCommitsRequest", ""), + ObjectSerializer.serialize(fetchColumnSecurityRulesRequest, "FetchColumnSecurityRulesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26475,29 +28723,21 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. - * @param searchConfigRequest + * Version: 9.9.0.cl or later Validates the difference in connection metadata between CDW and ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) Returns a boolean indicating whether there is any difference between the connection metadata at ThoughtSpot and CDW. To get the connection metadata difference status, pass the connection GUID as `connection_identifier` in the API request. + * @param connectionIdentifier GUID of the connection */ - searchConfig(searchConfigRequest, _options) { + fetchConnectionDiffStatus(connectionIdentifier, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchConfigRequest === null || searchConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchConfig", "searchConfigRequest"); + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchConnectionDiffStatus", "connectionIdentifier"); } - const localVarPath = "/api/rest/2.0/vcs/git/config/search"; + const localVarPath = "/api/rest/2.0/connections/fetch-connection-diff-status/{connection_identifier}".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchConfigRequest, "SearchConfigRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26511,26 +28751,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. - * @param searchConnectionRequest + * Version: 9.0.0.cl or later Gets data from a Liveboard object and its visualization. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To get data for specific visualizations, add the GUIDs or names of the visualizations in the API request. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes. If the new Liveboard experience mode, the transient content includes ad hoc changes to visualizations such as sorting, toggling of legends, and data drill down. For more information, and see [Liveboard data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_fetch_liveboard_data_api). + * @param fetchLiveboardDataRequest */ - searchConnection(searchConnectionRequest, _options) { + fetchLiveboardData(fetchLiveboardDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchConnectionRequest === null || searchConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchConnection", "searchConnectionRequest"); + if (fetchLiveboardDataRequest === null || fetchLiveboardDataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardData", "fetchLiveboardDataRequest"); } - const localVarPath = "/api/rest/2.0/connection/search"; + const localVarPath = "/api/rest/2.0/metadata/liveboard/data"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), + ObjectSerializer.serialize(fetchLiveboardDataRequest, "FetchLiveboardDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26547,26 +28788,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. - * @param searchCustomActionsRequest + * Version: 9.0.0.cl or later Fetches the underlying SQL query data for a Liveboard object and its visualizations. Requires at least view access to the Liveboard object. To get SQL query data for a Liveboard, specify the GUID of the Liveboard. Optionally, you can add an array of visualization GUIDs to retrieve the SQL query data for visualizations in the Liveboard. Upon successful execution, the API returns the SQL queries for the specified object as shown in this example: ``` { \"metadata_id\": \"fa68ae91-7588-4136-bacd-d71fb12dda69\", \"metadata_name\": \"Total Sales\", \"metadata_type\": \"LIVEBOARD\", \"sql_queries\": [ { \"metadata_id\": \"b3b6d2b9-089a-490c-8e16-b144650b7843\", \"metadata_name\": \"Total quantity purchased, Total sales by region\", \"sql_query\": \"SELECT \\n \\\"ta_1\\\".\\\"REGION\\\" \\\"ca_1\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"QUANTITYPURCHASED\\\")\\n ELSE 0\\n END \\\"ca_2\\\", \\n CASE\\n WHEN sum(\\\"ta_2\\\".\\\"SALES\\\") IS NOT NULL THEN sum(\\\"ta_2\\\".\\\"SALES\\\")\\n ELSE 0\\n END \\\"ca_3\\\"\\nFROM \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"FACT_RETAPP_SALES\\\" \\\"ta_2\\\"\\n JOIN \\\"RETAILAPPAREL\\\".\\\"PUBLIC\\\".\\\"DIM_RETAPP_STORES\\\" \\\"ta_1\\\"\\n ON \\\"ta_2\\\".\\\"STOREID\\\" = \\\"ta_1\\\".\\\"STOREID\\\"\\nGROUP BY \\\"ca_1\\\"\" } ] } ``` + * @param fetchLiveboardSqlQueryRequest */ - searchCustomActions(searchCustomActionsRequest, _options) { + fetchLiveboardSqlQuery(fetchLiveboardSqlQueryRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchCustomActions", "searchCustomActionsRequest"); + if (fetchLiveboardSqlQueryRequest === null || fetchLiveboardSqlQueryRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchLiveboardSqlQuery", "fetchLiveboardSqlQueryRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; + const localVarPath = "/api/rest/2.0/metadata/liveboard/sql"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), + ObjectSerializer.serialize(fetchLiveboardSqlQueryRequest, "FetchLiveboardSqlQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26583,26 +28825,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). - * @param searchDataRequest + * Version: 9.0.0.cl or later Fetches security audit logs. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the [Admin Control](https://developers.thoughtspot.com/docs/rbac#_admin_control) privileges are required. #### Usage guidelines By default, the API retrieves logs for the last 24 hours. You can set a custom duration in EPOCH time. Make sure the log duration specified in your API request doesn’t exceed 24 hours. If you must fetch logs for a longer time range, modify the duration and make multiple sequential API requests. Upon successful execution, the API returns logs with the following information: * timestamp of the event * event ID * event type * name and GUID of the user * IP address of ThoughtSpot instance For more information see [Audit logs Documentation](https://developers.thoughtspot.com/docs/audit-logs). + * @param fetchLogsRequest */ - searchData(searchDataRequest, _options) { + fetchLogs(fetchLogsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchDataRequest === null || searchDataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchData", "searchDataRequest"); + if (fetchLogsRequest === null || fetchLogsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchLogs", "fetchLogsRequest"); } - const localVarPath = "/api/rest/2.0/searchdata"; + const localVarPath = "/api/rest/2.0/logs/fetch"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), + ObjectSerializer.serialize(fetchLogsRequest, "FetchLogsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26619,26 +28862,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. - * @param searchEmailCustomizationRequest + * Version: 9.0.0.cl or later Fetches object permission details for a given principal object such as a user and group. Requires view access to the metadata object. #### Usage guidelines * To get a list of all metadata objects that a user or group can access, specify the `type` and GUID or name of the principal. * To get permission details for a specific object, add the `type` and GUID or name of the metadata object to your API request. Upon successful execution, the API returns a list of metadata objects and permission details for each object. + * @param fetchPermissionsOfPrincipalsRequest */ - searchEmailCustomization(searchEmailCustomizationRequest, _options) { + fetchPermissionsOfPrincipals(fetchPermissionsOfPrincipalsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); + if (fetchPermissionsOfPrincipalsRequest === null || fetchPermissionsOfPrincipalsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOfPrincipals", "fetchPermissionsOfPrincipalsRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/search"; + const localVarPath = "/api/rest/2.0/security/principals/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOfPrincipalsRequest, "FetchPermissionsOfPrincipalsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26655,26 +28899,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. - * @param searchMetadataRequest + * Version: 9.0.0.cl or later Fetches permission details for a given metadata object. Requires view access to the metadata object. #### Usage guidelines * To fetch a list of users and groups for a metadata object, specify `type` and GUID or name of the metadata object. * To get permission details for a specific user or group, add `type` and GUID or name of the principal object to your API request. Upon successful execution, the API returns permission details and principal information for the object specified in the API request. + * @param fetchPermissionsOnMetadataRequest */ - searchMetadata(searchMetadataRequest, _options) { + fetchPermissionsOnMetadata(fetchPermissionsOnMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchMetadataRequest === null || searchMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchMetadata", "searchMetadataRequest"); + if (fetchPermissionsOnMetadataRequest === null || fetchPermissionsOnMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "fetchPermissionsOnMetadata", "fetchPermissionsOnMetadataRequest"); } - const localVarPath = "/api/rest/2.0/metadata/search"; + const localVarPath = "/api/rest/2.0/security/metadata/fetch-permissions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), + ObjectSerializer.serialize(fetchPermissionsOnMetadataRequest, "FetchPermissionsOnMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26691,26 +28936,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param searchOrgsRequest + * Version: 9.0.0.cl or later Enforces logout on current user sessions. Use this API with caution as it may invalidate active user sessions and force users to re-login. Make sure you specify the usernames or GUIDs. If you pass null values in the API call, all user sessions on your cluster become invalid, and the users are forced to re-login. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param forceLogoutUsersRequest */ - searchOrgs(searchOrgsRequest, _options) { + forceLogoutUsers(forceLogoutUsersRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchOrgsRequest === null || searchOrgsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchOrgs", "searchOrgsRequest"); + if (forceLogoutUsersRequest === null || forceLogoutUsersRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "forceLogoutUsers", "forceLogoutUsersRequest"); } - const localVarPath = "/api/rest/2.0/orgs/search"; + const localVarPath = "/api/rest/2.0/users/force-logout"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), + ObjectSerializer.serialize(forceLogoutUsersRequest, "ForceLogoutUsersRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26727,26 +28973,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. - * @param searchRolesRequest + * Version: 10.12.0.cl or later Exports a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal) in the CSV format. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines Use this API to download a custom calendar in the CSV file format. In your API request, specify the following parameters. * Start and end date of the calendar. For \"month offset\" calendars, the start date must match the month defined in the `month_offset` attribute. You can also specify optional parameters such as the starting day of the week and prefixes for the quarter and year labels. + * @param generateCSVRequest */ - searchRoles(searchRolesRequest, _options) { + generateCSV(generateCSVRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchRolesRequest === null || searchRolesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchRoles", "searchRolesRequest"); + if (generateCSVRequest === null || generateCSVRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "generateCSV", "generateCSVRequest"); } - const localVarPath = "/api/rest/2.0/roles/search"; + const localVarPath = "/api/rest/2.0/calendars/generate-csv"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), + ObjectSerializer.serialize(generateCSVRequest, "GenerateCSVRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26763,29 +29010,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. - * @param searchSchedulesRequest + * Version: 9.0.0.cl or later Retrieves details of the current user session for the token provided in the request header. Any ThoughtSpot user can access this endpoint and send an API request. The data returned in the API response varies according to user\'s privilege and object access permissions. */ - searchSchedules(searchSchedulesRequest, _options) { + getCurrentUserInfo(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchSchedules", "searchSchedulesRequest"); - } - const localVarPath = "/api/rest/2.0/schedules/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/auth/session/user"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26799,29 +29034,17 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. - * @param searchTagsRequest + * Version: 9.4.0.cl or later Retrieves details of the current session token for the bearer token provided in the request header. This API endpoint does not create a new token. Instead, it returns details about the token, including the token string, creation time, expiration time, and the associated user. Use this endpoint to introspect your current session token, debug authentication issues, or when a frontend application needs session token details. Any ThoughtSpot user with a valid bearer token can access this endpoint and send an API request */ - searchTags(searchTagsRequest, _options) { + getCurrentUserToken(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchTagsRequest === null || searchTagsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchTags", "searchTagsRequest"); - } - const localVarPath = "/api/rest/2.0/tags/search"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + const localVarPath = "/api/rest/2.0/auth/session/token"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -26835,34 +29058,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. - * @param searchUserGroupsRequest + * 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. + * @param getCustomAccessTokenRequest */ - searchUserGroups(searchUserGroupsRequest, _options) { + getCustomAccessToken(getCustomAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchUserGroups", "searchUserGroupsRequest"); + if (getCustomAccessTokenRequest === null || getCustomAccessTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getCustomAccessToken", "getCustomAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/groups/search"; + const localVarPath = "/api/rest/2.0/auth/token/custom"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), + ObjectSerializer.serialize(getCustomAccessTokenRequest, "GetCustomAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -26871,26 +29090,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Gets a list of users available on the ThoughtSpot system. To get details of a specific user, specify the user GUID or name. You can also filter the API response based on groups, Org ID, user visibility, account status, user type, and user preference settings and favorites. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available users, set `record_size` to `-1`. - * @param searchUsersRequest + * 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 */ - searchUsers(searchUsersRequest, _options) { + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchUsersRequest === null || searchUsersRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchUsers", "searchUsersRequest"); + if (getDataSourceSuggestionsRequest === null || getDataSourceSuggestionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getDataSourceSuggestions", "getDataSourceSuggestionsRequest"); } - const localVarPath = "/api/rest/2.0/users/search"; + const localVarPath = "/api/rest/2.0/ai/data-source-suggestions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchUsersRequest, "SearchUsersRequest", ""), + ObjectSerializer.serialize(getDataSourceSuggestionsRequest, "GetDataSourceSuggestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26907,34 +29127,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 - * @param searchVariablesRequest + * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getFullAccessTokenRequest */ - searchVariables(searchVariablesRequest, _options) { + getFullAccessToken(getFullAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (searchVariablesRequest === null || searchVariablesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "searchVariables", "searchVariablesRequest"); + if (getFullAccessTokenRequest === null || getFullAccessTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getFullAccessToken", "getFullAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/search"; + const localVarPath = "/api/rest/2.0/auth/token/full"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(searchVariablesRequest, "SearchVariablesRequest", ""), + ObjectSerializer.serialize(getFullAccessTokenRequest, "GetFullAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -26943,30 +29159,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param conversationIdentifier Unique identifier of the conversation. - * @param sendMessageRequest + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest */ - sendMessage(conversationIdentifier, sendMessageRequest, _options) { + getNLInstructions(getNLInstructionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (conversationIdentifier === null || conversationIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "conversationIdentifier"); - } - if (sendMessageRequest === null || sendMessageRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "sendMessageRequest"); + if (getNLInstructionsRequest === null || getNLInstructionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getNLInstructions", "getNLInstructionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const localVarPath = "/api/rest/2.0/ai/instructions/get"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + ObjectSerializer.serialize(getNLInstructionsRequest, "GetNLInstructionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -26983,34 +29196,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. - * @param shareMetadataRequest + * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. + * @param getObjectAccessTokenRequest */ - shareMetadata(shareMetadataRequest, _options) { + getObjectAccessToken(getObjectAccessTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (shareMetadataRequest === null || shareMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "shareMetadata", "shareMetadataRequest"); + if (getObjectAccessTokenRequest === null || getObjectAccessTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getObjectAccessToken", "getObjectAccessTokenRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/share"; + const localVarPath = "/api/rest/2.0/auth/token/object"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), + ObjectSerializer.serialize(getObjectAccessTokenRequest, "GetObjectAccessTokenRequest", ""), contentType ); requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); - } const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); @@ -27019,26 +29228,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. - * @param singleAnswerRequest + * 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 */ - singleAnswer(singleAnswerRequest, _options) { + getRelevantQuestions(getRelevantQuestionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (singleAnswerRequest === null || singleAnswerRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "singleAnswer", "singleAnswerRequest"); + if (getRelevantQuestionsRequest === null || getRelevantQuestionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "getRelevantQuestions", "getRelevantQuestionsRequest"); } - const localVarPath = "/api/rest/2.0/ai/answer/create"; + const localVarPath = "/api/rest/2.0/ai/relevant-questions/"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + ObjectSerializer.serialize(getRelevantQuestionsRequest, "GetRelevantQuestionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27055,26 +29265,99 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. - * @param assignTagRequest + * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ - unassignTag(assignTagRequest, _options) { + getSystemConfig(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (assignTagRequest === null || assignTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "unassignTag", "assignTagRequest"); + const localVarPath = "/api/rest/2.0/system/config"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/tags/unassign"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets system information such as the release version, locale, time zone, deployment environment, date format, and date time format of the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. + */ + getSystemInformation(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/system"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Gets a list of configuration overrides applied on the cluster. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. This API does not require any parameters to be passed in the request. + */ + getSystemOverrideInfo(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/system/config-overrides"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "GET" /* GET */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Imports [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines * Import all related objects in a single TML Import API call. For example, Tables that use the same Connection object and Worksheets connected to these Tables. * Include the `fqn` property to distinguish objects that have the same name. For example, if you have multiple Connections or Worksheets with the same name on ThoughtSpot and the Connection or Worksheet referenced in your TML file does not have a unique name to distinguish, it may result in invalid object references. Adding `fqn` helps ThoughtSpot differentiate a Table from another with the same name. We recommend [exporting TML with FQNs](#/http/api-endpoints/metadata/export-metadata-tml) and using these during the import operation. * You can upload multiple TML files at a time. If you import a Worksheet along with Liveboards, Answers, and other dependent objects in a single API call, the imported objects will be immediately available for use. When you import only a Worksheet object, it may take some time for the Worksheet to become available in the ThoughtSpot system. Please wait for a few minutes, and then proceed to create an Answer and Liveboard from the newly imported Worksheet. For more information, see [TML Documentation](https://developers.thoughtspot.com/docs/tml#_import_a_tml). + * @param importMetadataTMLRequest + */ + importMetadataTML(importMetadataTMLRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (importMetadataTMLRequest === null || importMetadataTMLRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importMetadataTML", "importMetadataTMLRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/tml/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + ObjectSerializer.serialize(importMetadataTMLRequest, "ImportMetadataTMLRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27091,26 +29374,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. - * @param unparameterizeMetadataRequest + * Version: 10.4.0.cl or later Schedules a task to import [TML](https://docs.thoughtspot.com/cloud/latest/tml) files into ThoughtSpot. You can use this API endpoint to process TML objects asynchronously when importing TMLs of large and complex metadata objects into ThoughtSpot. Unlike the synchronous import TML operation, the API processes TML data in the background and returns a task ID, which can be used to check the status of the import task via `/api/rest/2.0/metadata/tml/async/status` API endpoint. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtsSpot**) privilege, and edit access to the TML objects. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### Usage guidelines See [Async TML API Documentation](https://developers.thoughtspot.com/docs/tml#_import_tml_objects_asynchronously) for usage guidelines. + * @param importMetadataTMLAsyncRequest */ - unparameterizeMetadata(unparameterizeMetadataRequest, _options) { + importMetadataTMLAsync(importMetadataTMLAsyncRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); + if (importMetadataTMLAsyncRequest === null || importMetadataTMLAsyncRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importMetadataTMLAsync", "importMetadataTMLAsyncRequest"); } - const localVarPath = "/api/rest/2.0/metadata/unparameterize"; + const localVarPath = "/api/rest/2.0/metadata/tml/async/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + ObjectSerializer.serialize(importMetadataTMLAsyncRequest, "ImportMetadataTMLAsyncRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27127,26 +29411,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations - * @param unpublishMetadataRequest + * Version: 9.0.0.cl or later Imports group objects from external databases into ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. During the import operation: * If the specified group is not available in ThoughtSpot, it will be added to ThoughtSpot. * If `delete_unspecified_groups` is set to `true`, the groups not specified in the API request, excluding administrator and system user groups, are deleted. * If the specified groups are already available in ThoughtSpot, the object properties of these groups are modified and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. + * @param importUserGroupsRequest */ - unpublishMetadata(unpublishMetadataRequest, _options) { + importUserGroups(importUserGroupsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "unpublishMetadata", "unpublishMetadataRequest"); + if (importUserGroupsRequest === null || importUserGroupsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importUserGroups", "importUserGroupsRequest"); } - const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; + const localVarPath = "/api/rest/2.0/groups/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), + ObjectSerializer.serialize(importUserGroupsRequest, "ImportUserGroupsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27163,30 +29448,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` - * @param calendarIdentifier Unique Id or name of the calendar. - * @param updateCalendarRequest + * Version: 9.0.0.cl or later Imports user data from external databases into ThoughtSpot. During the user import operation: * If the specified users are not available in ThoughtSpot, the users are created and assigned a default password. Defining a `default_password` in the API request is optional. * If `delete_unspecified_users` is set to `true`, the users not specified in the API request, excluding the `tsadmin`, `guest`, `system` and `su` users, are deleted. * If the specified user objects are already available in ThoughtSpot, the object properties are updated and synchronized as per the input data in the API request. A successful API call returns the object that represents the changes made in the ThoughtSpot system. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param importUsersRequest */ - updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { + importUsers(importUsersRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (calendarIdentifier === null || calendarIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "calendarIdentifier"); - } - if (updateCalendarRequest === null || updateCalendarRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "updateCalendarRequest"); + if (importUsersRequest === null || importUsersRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "importUsers", "importUsersRequest"); } - const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const localVarPath = "/api/rest/2.0/users/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), + ObjectSerializer.serialize(importUsersRequest, "ImportUsersRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27203,26 +29485,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups - * @param updateColumnSecurityRulesRequest + * Version: 9.0.0.cl or later Creates a login session for a ThoughtSpot user with Basic authentication. In Basic authentication method, REST clients log in to ThoughtSpot using `username` and `password` attributes. On a multi-tenant cluster with Orgs, users can pass the ID of the Org in the API request to log in to a specific Org context. **Note**: If Multi-Factor Authentication (MFA) is enabled on your instance, the API login request with basic authentication (`username` and `password` ) returns an error. Contact ThoughtSpot Support for assistance. A successful login returns a session cookie that can be used in your subsequent API requests. + * @param loginRequest */ - updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { + login(loginRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); + if (loginRequest === null || loginRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "login", "loginRequest"); } - const localVarPath = "/api/rest/2.0/security/column/rules/update"; + const localVarPath = "/api/rest/2.0/auth/session/login"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), + ObjectSerializer.serialize(loginRequest, "LoginRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27239,26 +29522,51 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Updates Git repository configuration settings. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. - * @param updateConfigRequest + * Version: 9.0.0.cl or later Logs out a user from their current session. */ - updateConfig(updateConfigRequest, _options) { + logout(_options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateConfigRequest === null || updateConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConfig", "updateConfigRequest"); + const localVarPath = "/api/rest/2.0/auth/session/logout"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); } - const localVarPath = "/api/rest/2.0/vcs/git/config/update"; + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param parameterizeMetadataRequest + */ + parameterizeMetadata(parameterizeMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (parameterizeMetadataRequest === null || parameterizeMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "parameterizeMetadata", "parameterizeMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/parameterize"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConfigRequest, "UpdateConfigRequest", ""), + ObjectSerializer.serialize(parameterizeMetadataRequest, "ParameterizeMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27275,26 +29583,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. - * @param updateConnectionRequest + * Version: 10.9.0.cl or later Allows publishing metadata objects across organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows publishing the following types of metadata objects: * Liveboards * Answers * Logical Tables This API will essentially share the objects along with it\'s dependencies to the org admins of the orgs to which it is being published. + * @param publishMetadataRequest */ - updateConnection(updateConnectionRequest, _options) { + publishMetadata(publishMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateConnectionRequest === null || updateConnectionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnection", "updateConnectionRequest"); + if (publishMetadataRequest === null || publishMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "publishMetadata", "publishMetadataRequest"); } - const localVarPath = "/api/rest/2.0/connection/update"; + const localVarPath = "/api/rest/2.0/security/metadata/publish"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), + ObjectSerializer.serialize(publishMetadataRequest, "PublishMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27311,30 +29620,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. - * @param configurationIdentifier Unique ID or name of the configuration. - * @param updateConnectionConfigurationRequest + * Version: 10.7.0.cl or later + * @param queryGetDecomposedQueryRequest */ - updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (configurationIdentifier === null || configurationIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "configurationIdentifier"); - } - if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + if (queryGetDecomposedQueryRequest === null || queryGetDecomposedQueryRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "queryGetDecomposedQuery", "queryGetDecomposedQueryRequest"); } - const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const localVarPath = "/api/rest/2.0/ai/analytical-questions"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + ObjectSerializer.serialize(queryGetDecomposedQueryRequest, "QueryGetDecomposedQueryRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27351,30 +29657,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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\":[ ] } ``` - * @param connectionIdentifier Unique ID or name of the connection. - * @param updateConnectionV2Request + * Version: 9.0.0.cl or later Resets the password of a user account. Administrators can reset password on behalf of a user. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param resetUserPasswordRequest */ - updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { + resetUserPassword(resetUserPasswordRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (connectionIdentifier === null || connectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "connectionIdentifier"); - } - if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "updateConnectionV2Request"); + if (resetUserPasswordRequest === null || resetUserPasswordRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "resetUserPassword", "resetUserPasswordRequest"); } - const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const localVarPath = "/api/rest/2.0/users/reset-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), + ObjectSerializer.serialize(resetUserPasswordRequest, "ResetUserPasswordRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27391,30 +29694,31 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). - * @param customActionIdentifier Unique ID or name of the custom action. - * @param updateCustomActionRequest + * Version: 9.2.0.cl or later Reverts TML objects to a previous commit specified in the API request. Requires at least edit access to objects. In the API request, specify the `commit_id`. If the branch name is not specified in the request, the API will consider the default branch configured on your instance. By default, the API reverts all objects. If the revert operation fails for one of the objects provided in the commit, the API returns an error and does not revert any object. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). + * @param commitId Commit id to which the object should be reverted + * @param revertCommitRequest */ - updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { + revertCommit(commitId, revertCommitRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (customActionIdentifier === null || customActionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "customActionIdentifier"); + if (commitId === null || commitId === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "commitId"); } - if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "updateCustomActionRequest"); + if (revertCommitRequest === null || revertCommitRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "revertCommit", "revertCommitRequest"); } - const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const localVarPath = "/api/rest/2.0/vcs/git/commits/{commit_id}/revert".replace("{commit_id}", encodeURIComponent(String(commitId))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), + ObjectSerializer.serialize(revertCommitRequest, "RevertCommitRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27431,81 +29735,30 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. - * @param dbtConnectionIdentifier Unique ID of the DBT Connection. - * @param connectionName Name of the connection. - * @param databaseName Name of the Database. - * @param importType Mention type of Import - * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. - * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. - * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD - * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD - * @param dbtEnvId DBT Environment ID\\\" - * @param projectName Name of the project - * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + * Version: 9.0.0.cl or later Revokes the authentication token issued for current user session. The token of your current session expires when you make a call to the `/api/rest/2.0/auth/token/revoke` endpoint. the users will not be able to access ThoughtSpot objects until a new token is obtained. To restart your session, request for a new token from ThoughtSpot. See [Get Full Access Token](#/http/api-endpoints/authentication/get-full-access-token). + * @param revokeTokenRequest */ - updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + revokeToken(revokeTokenRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateDbtConnection", "dbtConnectionIdentifier"); + if (revokeTokenRequest === null || revokeTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "revokeToken", "revokeTokenRequest"); } - const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; + const localVarPath = "/api/rest/2.0/auth/token/revoke"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const useForm = canConsumeForm([ - "multipart/form-data" + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" ]); - let localVarFormParams; - if (useForm) { - localVarFormParams = new FormData(); - } else { - localVarFormParams = new URLSearchParams(); - } - if (dbtConnectionIdentifier !== void 0) { - localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); - } - if (connectionName !== void 0) { - localVarFormParams.append("connection_name", connectionName); - } - if (databaseName !== void 0) { - localVarFormParams.append("database_name", databaseName); - } - if (importType !== void 0) { - localVarFormParams.append("import_type", importType); - } - if (accessToken !== void 0) { - localVarFormParams.append("access_token", accessToken); - } - if (dbtUrl !== void 0) { - localVarFormParams.append("dbt_url", dbtUrl); - } - if (accountId !== void 0) { - localVarFormParams.append("account_id", accountId); - } - if (projectId !== void 0) { - localVarFormParams.append("project_id", projectId); - } - if (dbtEnvId !== void 0) { - localVarFormParams.append("dbt_env_id", dbtEnvId); - } - if (projectName !== void 0) { - localVarFormParams.append("project_name", projectName); - } - if (fileContent !== void 0) { - if (localVarFormParams instanceof FormData) { - localVarFormParams.append("file_content", fileContent, fileContent.name); - } - } - requestContext.setBody(localVarFormParams); - if (!useForm) { - const contentType = ObjectSerializer.getPreferredMediaType([ - "multipart/form-data" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - } + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(revokeTokenRequest, "RevokeTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -27519,26 +29772,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` - * @param updateEmailCustomizationRequest + * Version: 10.12.0.cl or later Gets a list of [custom calendars](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines By default, the API returns a list of custom calendars for all connection objects. To retrieve custom calendar details for a particular connection, specify the connection ID. You can also use other search parameters such as `name_pattern` and `sort_options` as search filters. The `name_pattern` parameter filters and returns only those objects that match the specified pattern. Use `%` as a wildcard for pattern matching. + * @param searchCalendarsRequest */ - updateEmailCustomization(updateEmailCustomizationRequest, _options) { + searchCalendars(searchCalendarsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); + if (searchCalendarsRequest === null || searchCalendarsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCalendars", "searchCalendarsRequest"); } - const localVarPath = "/api/rest/2.0/customization/email/update"; + const localVarPath = "/api/rest/2.0/calendars/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), + ObjectSerializer.serialize(searchCalendarsRequest, "SearchCalendarsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27555,26 +29809,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` - * @param updateMetadataHeaderRequest + * Version: 9.2.0.cl or later Gets a list of commits for a given metadata object. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. + * @param searchCommitsRequest */ - updateMetadataHeader(updateMetadataHeaderRequest, _options) { + searchCommits(searchCommitsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); + if (searchCommitsRequest === null || searchCommitsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCommits", "searchCommitsRequest"); } - const localVarPath = "/api/rest/2.0/metadata/headers/update"; + const localVarPath = "/api/rest/2.0/vcs/git/commits/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), + ObjectSerializer.serialize(searchCommitsRequest, "SearchCommitsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27591,26 +29846,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` - * @param updateMetadataObjIdRequest + * 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. + * @param searchCommunicationChannelPreferencesRequest */ - updateMetadataObjId(updateMetadataObjIdRequest, _options) { + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); + if (searchCommunicationChannelPreferencesRequest === null || searchCommunicationChannelPreferencesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCommunicationChannelPreferences", "searchCommunicationChannelPreferencesRequest"); } - const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; + const localVarPath = "/api/rest/2.0/system/preferences/communication-channels/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), + ObjectSerializer.serialize(searchCommunicationChannelPreferencesRequest, "SearchCommunicationChannelPreferencesRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27627,30 +29883,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. - * @param orgIdentifier ID or name of the Org - * @param updateOrgRequest + * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. + * @param searchConfigRequest */ - updateOrg(orgIdentifier, updateOrgRequest, _options) { + searchConfig(searchConfigRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (orgIdentifier === null || orgIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "orgIdentifier"); - } - if (updateOrgRequest === null || updateOrgRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "updateOrgRequest"); + if (searchConfigRequest === null || searchConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchConfig", "searchConfigRequest"); } - const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const localVarPath = "/api/rest/2.0/vcs/git/config/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), + ObjectSerializer.serialize(searchConfigRequest, "SearchConfigRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27667,30 +29920,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. - * @param roleIdentifier Unique ID or name of the Role. - * @param updateRoleRequest + * Version: 9.2.0.cl or later Gets connection objects. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. - To get a list of all connections available in the ThoughtSpot system, send the API request without any attributes in the request body. - To get the connection objects for a specific type of data warehouse, specify the type in `data_warehouse_types`. - To fetch details of a connection object, specify the connection object GUID or name. The `name_pattern` attribute allows passing partial text with `%` for a wildcard match. - To get details of the database, schemas, tables, or columns from a data connection object, specify `data_warehouse_object_type`. - To get a specific database, schema, table, or column from a connection object, define the object type in `data_warehouse_object_type` and object properties in the `data_warehouse_objects` array. For example, to search for a column, you must pass the database, schema, and table names in the API request. Note that in the following example, object properties are set in a hierarchical order (`database` > `schema` > `table` > `column`). ``` { \"connections\": [ { \"identifier\": \"b9d1f2ef-fa65-4a4b-994e-30fa2d57b0c2\", \"data_warehouse_objects\": [ { \"database\": \"NEBULADEV\", \"schema\": \"INFORMATION_SCHEMA\", \"table\": \"APPLICABLE_ROLES\", \"column\": \"ROLE_NAME\" } ] } ], \"data_warehouse_object_type\": \"COLUMN\" } ``` - To fetch data by `configuration`, specify `data_warehouse_object_type`. For example, to fetch columns from the `DEVELOPMENT` database, specify the `data_warehouse_object_type` as `DATABASE` and define the `configuration` string as `{\"database\":\"DEVELOPMENT\"}`. To get column data for a specific table, specify the table, for example,`{\"database\":\"RETAILAPPAREL\",\"table\":\"PIPES\"}`. - To query connections by `authentication_type`, specify `data_warehouse_object_type`. Supported values for `authentication_type` are: - `SERVICE_ACCOUNT`: For connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data. - `OAUTH`: For connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data. Teradata, Oracle, and Presto Cloud Data Warehouses do not support the OAuth authentication type. - `IAM`: For connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only. - `EXTOAUTH`: For connections that have External OAuth set up. ThoughtSpot supports external [OAuth with Microsoft Azure Active Directory (AD)](https://docs.thoughtspot.com/cloud/latest/ connections-snowflake-azure-ad-oauth) and [Okta for Snowflake data connections](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth). - `KEY_PAIR`: For connections that require Key Pair account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PKCE`: For connections that require OAuth with PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake, Starburst, Databricks, Denodo connections only. - `EXTOAUTH_WITH_PKCE`: For connections that require External OAuth With PKCE account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - `OAUTH_WITH_PEZ`: For connections that require OAuth With PEZ account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Amazon Redshift connections only. - `OAUTH_WITH_SERVICE_PRINCIPAL`: For connections that require OAuth With Service Principal account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `PERSONAL_ACCESS_TOKEN`: For connections that require Personal Access Token account credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Databricks connections only. - `OAUTH_CLIENT_CREDENTIALS`: For connections that require OAuth Client Credentials to authenticate to the Cloud Data Warehouse and fetch data. This authentication type is supported on Snowflake connections only. - To include more details about connection objects in the API response, set `include_details` to `true`. - You can also sort the output by field names and filter connections by tags. **NOTE**: When filtering connection records by parameters other than `data_warehouse_types` or `tag_identifiers`, ensure that you set `record_size` to `-1` and `record_offset` to `0` for precise results. + * @param searchConnectionRequest */ - updateRole(roleIdentifier, updateRoleRequest, _options) { + searchConnection(searchConnectionRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (roleIdentifier === null || roleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateRole", "roleIdentifier"); - } - if (updateRoleRequest === null || updateRoleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateRole", "updateRoleRequest"); + if (searchConnectionRequest === null || searchConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchConnection", "searchConnectionRequest"); } - const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const localVarPath = "/api/rest/2.0/connection/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), + ObjectSerializer.serialize(searchConnectionRequest, "SearchConnectionRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27707,30 +29957,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. - * @param scheduleIdentifier Unique ID or name of the schedule. - * @param updateScheduleRequest + * Version: 9.6.0.cl or later Gets custom actions configured on the cluster. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. + * @param searchCustomActionsRequest */ - updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + searchCustomActions(searchCustomActionsRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (scheduleIdentifier === null || scheduleIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "scheduleIdentifier"); - } - if (updateScheduleRequest === null || updateScheduleRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "updateScheduleRequest"); + if (searchCustomActionsRequest === null || searchCustomActionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchCustomActions", "searchCustomActionsRequest"); } - const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const localVarPath = "/api/rest/2.0/customization/custom-actions/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + ObjectSerializer.serialize(searchCustomActionsRequest, "SearchCustomActionsRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27747,26 +29994,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. - * @param updateSystemConfigRequest + * Version: 9.0.0.cl or later Generates an Answer from a given data source. Requires at least view access to the data source object (Worksheet or View). #### Usage guidelines To search data, specify the data source GUID in `logical_table_identifier`. The data source can be a Worksheet, View, Table, or SQL view. Pass search tokens in the `query_string` attribute in the API request as shown in the following example: ``` { \"query_string\": \"[sales] by [store]\", \"logical_table_identifier\": \"cd252e5c-b552-49a8-821d-3eadaa049cca\", } ``` For more information about the `query_string` format and data source attribute, see [Search data API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_search_data_api). The `record_size` attribute determines the number of records to retrieve in an API call. For more information about pagination, record size, and maximum row limit, see [Pagination and record size settings](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_pagination_settings_for_data_and_report_api). + * @param searchDataRequest */ - updateSystemConfig(updateSystemConfigRequest, _options) { + searchData(searchDataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateSystemConfig", "updateSystemConfigRequest"); + if (searchDataRequest === null || searchDataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchData", "searchDataRequest"); } - const localVarPath = "/api/rest/2.0/system/config-update"; + const localVarPath = "/api/rest/2.0/searchdata"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), + ObjectSerializer.serialize(searchDataRequest, "SearchDataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27783,30 +30031,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. - * @param tagIdentifier Name or Id of the tag. - * @param updateTagRequest + * Version: 10.10.0.cl or later Search the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * @param searchEmailCustomizationRequest */ - updateTag(tagIdentifier, updateTagRequest, _options) { + searchEmailCustomization(searchEmailCustomizationRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (tagIdentifier === null || tagIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateTag", "tagIdentifier"); - } - if (updateTagRequest === null || updateTagRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateTag", "updateTagRequest"); + if (searchEmailCustomizationRequest === null || searchEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchEmailCustomization", "searchEmailCustomizationRequest"); } - const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const localVarPath = "/api/rest/2.0/customization/email/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + ObjectSerializer.serialize(searchEmailCustomizationRequest, "SearchEmailCustomizationRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27823,30 +30068,27 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * Version: 9.0.0.cl or later Updates the properties of a user object. You can modify user properties such as username, email, and share notification settings. You can also assign new groups and Orgs, remove the user from a group or Org, reset password, and modify user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. - * @param userIdentifier GUID / name of the user - * @param updateUserRequest + * Version: 9.0.0.cl or later Gets a list of metadata objects available on the ThoughtSpot system. This API endpoint is available to all users who have view access to the object. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view data for all metadata objects, including users and groups. #### Usage guidelines - To get all metadata objects, send the API request without any attributes. - To get metadata objects of a specific type, set the `type` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE`. - To filter metadata objects within type `LOGICAL_TABLE`, set the `subtypes` attribute. For example, to fetch a Worksheet, set the type as `LOGICAL_TABLE` & subtypes as `[WORKSHEET]`. - To get a specific metadata object, specify the GUID. - To customize your search and filter the API response, you can use several parameters. You can search for objects created or modified by specific users, by tags applied to the objects, or by using the include parameters like `include_auto_created_objects`, `include_dependent_objects`, `include_headers`, `include_incomplete_objects`, and so on. You can also define sorting options to sort the data retrieved in the API response. - To get discoverable objects when linientmodel is enabled you can use `include_discoverable_objects` as true else false. Default value is true. - For liveboard metadata type, to get the newer format, set the `liveboard_response_format` as V2. Default value is V1. - To retrieve only objects that are published, set the `include_only_published_objects` as true. Default value is false. **NOTE**: The following parameters support pagination of metadata records: - `tag_identifiers` - `type` - `subtypes` - `created_by_user_identifiers` - `modified_by_user_identifiers` - `owned_by_user_identifiers` - `exclude_objects` - `include_auto_created_objects` - `favorite_object_options` - `include_only_published_objects` If you are using other parameters to search metadata, set `record_size` to `-1` and `record_offset` to `0`. + * @param searchMetadataRequest */ - updateUser(userIdentifier, updateUserRequest, _options) { + searchMetadata(searchMetadataRequest, _options) { return __async(this, null, function* () { var _a, _b, _c; let _config = _options || this.configuration; - if (userIdentifier === null || userIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUser", "userIdentifier"); - } - if (updateUserRequest === null || updateUserRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUser", "updateUserRequest"); + if (searchMetadataRequest === null || searchMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchMetadata", "searchMetadataRequest"); } - const localVarPath = "/api/rest/2.0/users/{user_identifier}/update".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); + const localVarPath = "/api/rest/2.0/metadata/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); requestContext.setHeaderParam("Content-Type", contentType); const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateUserRequest, "UpdateUserRequest", ""), + ObjectSerializer.serialize(searchMetadataRequest, "SearchMetadataRequest", ""), contentType ); requestContext.setBody(serializedBody); @@ -27859,236 +30101,2524 @@ var ThoughtSpotRestApiRequestFactory = class extends BaseAPIRequestFactory { if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); } - return requestContext; + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of Orgs configured on the ThoughtSpot system. To get details of a specific Org, specify the Org ID or name. You can also pass parameters such as status, visibility, and user identifiers to get a specific list of Orgs. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param searchOrgsRequest + */ + searchOrgs(searchOrgsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchOrgsRequest === null || searchOrgsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchOrgs", "searchOrgsRequest"); + } + const localVarPath = "/api/rest/2.0/orgs/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchOrgsRequest, "SearchOrgsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.5.0.cl or later Gets a list of Role objects from the ThoughtSpot system. Available if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To search for Roles, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. To get details of a specific Role object, specify the GUID or name. You can also filter the API response based on user group and Org identifiers, privileges assigned to the Role, and deprecation status. + * @param searchRolesRequest + */ + searchRoles(searchRolesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchRolesRequest === null || searchRolesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchRoles", "searchRolesRequest"); + } + const localVarPath = "/api/rest/2.0/roles/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchRolesRequest, "SearchRolesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Search Schedules Version: 9.4.0.cl or later Gets a list of scheduled jobs configured for a Liveboard. To get details of a specific scheduled job, specify the name or GUID of the scheduled job. Requires at least view access to Liveboards. **NOTE**: When filtering schedules by parameters other than `metadata`, set `record_size` to `-1` and `record_offset` to `0` for accurate results. + * @param searchSchedulesRequest + */ + searchSchedules(searchSchedulesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchSchedulesRequest === null || searchSchedulesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchSchedules", "searchSchedulesRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchSchedulesRequest, "SearchSchedulesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of tag objects available on the ThoughtSpot system. To get details of a specific tag object, specify the GUID or name. Any authenticated user can search for tag objects. + * @param searchTagsRequest + */ + searchTags(searchTagsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchTagsRequest === null || searchTagsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchTags", "searchTagsRequest"); + } + const localVarPath = "/api/rest/2.0/tags/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchTagsRequest, "SearchTagsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of user group objects from the ThoughtSpot system. To get details of a specific user group, specify the user group GUID or name. You can also filter the API response based on User ID, Org ID, Role ID, type of group, sharing visibility, privileges assigned to the group, and the Liveboard IDs assigned to the users in the group. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. **NOTE**: If you do not get precise results, try setting `record_size` to `-1` and `record_offset` to `0`. + * @param searchUserGroupsRequest + */ + searchUserGroups(searchUserGroupsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchUserGroupsRequest === null || searchUserGroupsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchUserGroups", "searchUserGroupsRequest"); + } + const localVarPath = "/api/rest/2.0/groups/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchUserGroupsRequest, "SearchUserGroupsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Gets a list of users available on the ThoughtSpot system. To get details of a specific user, specify the user GUID or name. You can also filter the API response based on groups, Org ID, user visibility, account status, user type, and user preference settings and favorites. Available to all users. Users with `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges can view all users properties. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. **NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available users, set `record_size` to `-1`. + * @param searchUsersRequest + */ + searchUsers(searchUsersRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchUsersRequest === null || searchUsersRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchUsers", "searchUsersRequest"); + } + const localVarPath = "/api/rest/2.0/users/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchUsersRequest, "SearchUsersRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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 + * @param searchVariablesRequest + */ + searchVariables(searchVariablesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchVariablesRequest === null || searchVariablesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchVariables", "searchVariablesRequest"); + } + const localVarPath = "/api/rest/2.0/template/variables/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchVariablesRequest, "SearchVariablesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchWebhookConfigurationsRequest === null || searchWebhookConfigurationsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "searchWebhookConfigurations", "searchWebhookConfigurationsRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchWebhookConfigurationsRequest, "SearchWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessage", "conversationIdentifier"); + } + if (sendAgentMessageRequest === null || sendAgentMessageRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessage", "sendAgentMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendAgentMessageRequest, "SendAgentMessageRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (sendAgentMessageStreamingRequest === null || sendAgentMessageStreamingRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendAgentMessageStreaming", "sendAgentMessageStreamingRequest"); + } + const localVarPath = "/api/rest/2.0/ai/agent/converse/sse"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendAgentMessageStreamingRequest, "SendAgentMessageStreamingRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param conversationIdentifier Unique identifier of the conversation. + * @param sendMessageRequest + */ + sendMessage(conversationIdentifier, sendMessageRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (conversationIdentifier === null || conversationIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "conversationIdentifier"); + } + if (sendMessageRequest === null || sendMessageRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "sendMessage", "sendMessageRequest"); + } + const localVarPath = "/api/rest/2.0/ai/conversation/{conversation_identifier}/converse".replace("{conversation_identifier}", encodeURIComponent(String(conversationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(sendMessageRequest, "SendMessageRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (setNLInstructionsRequest === null || setNLInstructionsRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "setNLInstructions", "setNLInstructionsRequest"); + } + const localVarPath = "/api/rest/2.0/ai/instructions/set"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(setNLInstructionsRequest, "SetNLInstructionsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. + * @param shareMetadataRequest + */ + shareMetadata(shareMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (shareMetadataRequest === null || shareMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "shareMetadata", "shareMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/security/metadata/share"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(shareMetadataRequest, "ShareMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. + * @param singleAnswerRequest + */ + singleAnswer(singleAnswerRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (singleAnswerRequest === null || singleAnswerRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "singleAnswer", "singleAnswerRequest"); + } + const localVarPath = "/api/rest/2.0/ai/answer/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(singleAnswerRequest, "SingleAnswerRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Removes the tags applied to a Liveboard, Answer, Table, or Worksheet. Requires edit access to the metadata object. + * @param assignTagRequest + */ + unassignTag(assignTagRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (assignTagRequest === null || assignTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "unassignTag", "assignTagRequest"); + } + const localVarPath = "/api/rest/2.0/tags/unassign"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(assignTagRequest, "AssignTagRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user + * @param unparameterizeMetadataRequest + */ + unparameterizeMetadata(unparameterizeMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (unparameterizeMetadataRequest === null || unparameterizeMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "unparameterizeMetadata", "unparameterizeMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/unparameterize"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(unparameterizeMetadataRequest, "UnparameterizeMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.9.0.cl or later Allows unpublishing metadata objects from organizations in ThoughtSpot. Requires ADMINISTRATION role and TENANT scope. The API endpoint allows unpublishing the following types of metadata objects: * Liveboards * Answers * Logical Tables When unpublishing objects, you can: * Include dependencies by setting `include_dependencies` to true - this will unpublish all dependent objects if no other published object is using them * Force unpublish by setting `force` to true - this will break all dependent objects in the unpublished organizations + * @param unpublishMetadataRequest + */ + unpublishMetadata(unpublishMetadataRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (unpublishMetadataRequest === null || unpublishMetadataRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "unpublishMetadata", "unpublishMetadataRequest"); + } + const localVarPath = "/api/rest/2.0/security/metadata/unpublish"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(unpublishMetadataRequest, "UnpublishMetadataRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates the properties of a [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can update the properties of a calendar using one of the following methods: * `FROM_INPUT_PARAMS` to update the calendar properties with the values defined in the API request. * `FROM_EXISTING_TABLE` Creates a calendar from the parameters defined in the API request. To update a custom calendar, specify the calendar ID as a path parameter in the request URL and the following parameters in the request body: * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. The API allows you to modify the calendar type, month offset value, start and end date, starting day of the week, and prefixes assigned to the year and quarter labels. #### Examples Update a custom calendar using an existing Table in ThoughtSpot: ``` { \"update_method\": \"FROM_EXISTING_TABLE\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" } } ``` Update a custom calendar with the attributes defined in the API request: ``` { \"update_method\": \"FROM_INPUT_PARAMS\", \"table_reference\": { \"connection_identifier\": \"Connection1\", \"database_name\": \"db1\", \"table_name\": \"custom_calendar_2025\", \"schame_name\": \"schemaVar\" }, \"month_offset\": \"August\", \"start_day_of_week\": \"Monday\", \"start_date\": \"08/01/2025\", \"end_date\": \"07/31/2026\" } ``` + * @param calendarIdentifier Unique Id or name of the calendar. + * @param updateCalendarRequest + */ + updateCalendar(calendarIdentifier, updateCalendarRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (calendarIdentifier === null || calendarIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "calendarIdentifier"); + } + if (updateCalendarRequest === null || updateCalendarRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCalendar", "updateCalendarRequest"); + } + const localVarPath = "/api/rest/2.0/calendars/{calendar_identifier}/update".replace("{calendar_identifier}", encodeURIComponent(String(calendarIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateCalendarRequest, "UpdateCalendarRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Creates, updates, or deletes column security rules for specified tables. This API endpoint allows you to create, update, or delete column-level security rules on columns of a table. The operation follows an \"all or none\" policy: if defining security rules for any of the provided columns fails, the entire operation will be rolled back, and no rules will be created. #### Usage guidelines - Provide table identifier using either `identifier` (GUID or name) or `obj_identifier` (object ID) - Use `clear_csr: true` to remove all column security rules from the table - For each column, specify the security rule using `column_security_rules` array - Use `is_unsecured: true` to mark a specific column as unprotected - Use `group_access` operations to manage group associations: - `ADD`: Add groups to the column\'s access list - `REMOVE`: Remove groups from the column\'s access list - `REPLACE`: Replace all existing groups with the specified groups #### Required permissions - `ADMINISTRATION` - Can administer ThoughtSpot - `DATAMANAGEMENT` - Can manage data (if RBAC is disabled) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` - Can manage worksheet views and tables (if RBAC is enabled) #### Example request ```json { \"identifier\": \"table-guid\", \"obj_identifier\": \"table-object-id\", \"clear_csr\": false, \"column_security_rules\": [ { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"ADD\", \"group_identifiers\": [\"hr_group_id\", \"hr_group_name\", \"finance_group_id\"] } ] }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": true }, { \"column_identifier\": \"col id or col name\", \"is_unsecured\": false, \"group_access\": [ { \"operation\": \"REPLACE\", \"group_identifiers\": [\"management_group_id\", \"management_group_name\"] } ] } ] } ``` #### Request Body Schema - `identifier` (string, optional): GUID or name of the table for which we want to create column security rules - `obj_identifier` (string, optional): The object ID of the table - `clear_csr` (boolean, optional): If true, then all the secured columns will be marked as unprotected, and all the group associations will be removed - `column_security_rules` (array of objects, required): An array where each object defines the security rule for a specific column Each column security rule object contains: - `column_identifier` (string, required): Column identifier (col_id or name) - `is_unsecured` (boolean, optional): If true, the column will be marked as unprotected and all groups associated with it will be removed - `group_access` (array of objects, optional): Array of group operation objects Each group operation object contains: - `operation` (string, required): Operation type - ADD, REMOVE, or REPLACE - `group_identifiers` (array of strings, required): Array of group identifiers (name or GUID) on which the operation will be performed #### Response This API does not return any response body. A successful operation returns HTTP 200 status code. #### Operation Types - **ADD**: Adds the specified groups to the column\'s access list - **REMOVE**: Removes the specified groups from the column\'s access list - **REPLACE**: Replaces all existing groups with the specified groups + * @param updateColumnSecurityRulesRequest + */ + updateColumnSecurityRules(updateColumnSecurityRulesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateColumnSecurityRulesRequest === null || updateColumnSecurityRulesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateColumnSecurityRules", "updateColumnSecurityRulesRequest"); + } + const localVarPath = "/api/rest/2.0/security/column/rules/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateColumnSecurityRulesRequest, "UpdateColumnSecurityRulesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Updates Git repository configuration settings. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. + * @param updateConfigRequest + */ + updateConfig(updateConfigRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateConfigRequest === null || updateConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConfig", "updateConfigRequest"); + } + const localVarPath = "/api/rest/2.0/vcs/git/config/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConfigRequest, "UpdateConfigRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later **Important**: This endpoint is deprecated and will be removed from ThoughtSpot in September 2025. ThoughtSpot strongly recommends using the [Update connection V2](#/http/api-endpoints/connections/update-connection-v2) endpoint to update your connection objects. #### Usage guidelines 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`. 3. If you are updating a configuration attribute, connection name, or description, you can set `validate` to `false`. + * @param updateConnectionRequest + */ + updateConnection(updateConnectionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateConnectionRequest === null || updateConnectionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnection", "updateConnectionRequest"); + } + const localVarPath = "/api/rest/2.0/connection/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionRequest, "UpdateConnectionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * @param configurationIdentifier Unique ID or name of the configuration. + * @param updateConnectionConfigurationRequest + */ + updateConnectionConfiguration(configurationIdentifier, updateConnectionConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (configurationIdentifier === null || configurationIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "configurationIdentifier"); + } + if (updateConnectionConfigurationRequest === null || updateConnectionConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionConfiguration", "updateConnectionConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/connection-configurations/{configuration_identifier}/update".replace("{configuration_identifier}", encodeURIComponent(String(configurationIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionConfigurationRequest, "UpdateConnectionConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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\":[ ] } ``` + * @param connectionIdentifier Unique ID or name of the connection. + * @param updateConnectionV2Request + */ + updateConnectionV2(connectionIdentifier, updateConnectionV2Request, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (connectionIdentifier === null || connectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "connectionIdentifier"); + } + if (updateConnectionV2Request === null || updateConnectionV2Request === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateConnectionV2", "updateConnectionV2Request"); + } + const localVarPath = "/api/rest/2.0/connections/{connection_identifier}/update".replace("{connection_identifier}", encodeURIComponent(String(connectionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateConnectionV2Request, "UpdateConnectionV2Request", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.6.0.cl or later Updates a custom action. 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 `DEVELOPER` (**Has developer privilege**) privilege is required. #### Usage Guidelines The API allows you to modify the following properties: * Name of the custom action * Action availability to groups * Association to metadata objects * Authentication settings for a URL-based action For more information, see [Custom actions](https://developers.thoughtspot.com/docs/custom-action-intro). + * @param customActionIdentifier Unique ID or name of the custom action. + * @param updateCustomActionRequest + */ + updateCustomAction(customActionIdentifier, updateCustomActionRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (customActionIdentifier === null || customActionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "customActionIdentifier"); + } + if (updateCustomActionRequest === null || updateCustomActionRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateCustomAction", "updateCustomActionRequest"); + } + const localVarPath = "/api/rest/2.0/customization/custom-actions/{custom_action_identifier}/update".replace("{custom_action_identifier}", encodeURIComponent(String(customActionIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateCustomActionRequest, "UpdateCustomActionRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.9.0.cl or later Updates a DBT connection object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data ThoughtSpot**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About update DBT connection You can modify DBT connection object properties such as embrace connection name, embrace database name, import type, account identifier, access token, project identifier and environment (or) embrace connection, embrace database name, import type, file_content settings. + * @param dbtConnectionIdentifier Unique ID of the DBT Connection. + * @param connectionName Name of the connection. + * @param databaseName Name of the Database. + * @param importType Mention type of Import + * @param accessToken Access token is mandatory when Import_Type is DBT_CLOUD. + * @param dbtUrl DBT URL is mandatory when Import_Type is DBT_CLOUD. + * @param accountId Account ID is mandatory when Import_Type is DBT_CLOUD + * @param projectId Project ID is mandatory when Import_Type is DBT_CLOUD + * @param dbtEnvId DBT Environment ID\\\" + * @param projectName Name of the project + * @param fileContent Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \\\'ZIP_FILE\\\' + */ + updateDbtConnection(dbtConnectionIdentifier, connectionName, databaseName, importType, accessToken, dbtUrl, accountId, projectId, dbtEnvId, projectName, fileContent, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (dbtConnectionIdentifier === null || dbtConnectionIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateDbtConnection", "dbtConnectionIdentifier"); + } + const localVarPath = "/api/rest/2.0/dbt/update-dbt-connection"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const useForm = canConsumeForm([ + "multipart/form-data" + ]); + let localVarFormParams; + if (useForm) { + localVarFormParams = new FormData(); + } else { + localVarFormParams = new URLSearchParams(); + } + if (dbtConnectionIdentifier !== void 0) { + localVarFormParams.append("dbt_connection_identifier", dbtConnectionIdentifier); + } + if (connectionName !== void 0) { + localVarFormParams.append("connection_name", connectionName); + } + if (databaseName !== void 0) { + localVarFormParams.append("database_name", databaseName); + } + if (importType !== void 0) { + localVarFormParams.append("import_type", importType); + } + if (accessToken !== void 0) { + localVarFormParams.append("access_token", accessToken); + } + if (dbtUrl !== void 0) { + localVarFormParams.append("dbt_url", dbtUrl); + } + if (accountId !== void 0) { + localVarFormParams.append("account_id", accountId); + } + if (projectId !== void 0) { + localVarFormParams.append("project_id", projectId); + } + if (dbtEnvId !== void 0) { + localVarFormParams.append("dbt_env_id", dbtEnvId); + } + if (projectName !== void 0) { + localVarFormParams.append("project_name", projectName); + } + if (fileContent !== void 0) { + if (localVarFormParams instanceof FormData) { + localVarFormParams.append("file_content", fileContent, fileContent.name); + } + } + requestContext.setBody(localVarFormParams); + if (!useForm) { + const contentType = ObjectSerializer.getPreferredMediaType([ + "multipart/form-data" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + } + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` + * @param updateEmailCustomizationRequest + */ + updateEmailCustomization(updateEmailCustomizationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateEmailCustomizationRequest === null || updateEmailCustomizationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateEmailCustomization", "updateEmailCustomizationRequest"); + } + const localVarPath = "/api/rest/2.0/customization/email/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateEmailCustomizationRequest, "UpdateEmailCustomizationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update header attributes for a given list of header objects. Version: 10.6.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **headers_update** - **Description:** List of header objects with their attributes to be updated. Each object contains a list of attributes to be updated in the header. - **Usage:** - You must provide either `identifier` or `obj_identifier`, but not both. Both fields cannot be empty. - When `org_identifier` is set to `-1`, only the `identifier` value is accepted; `obj_identifier` is not allowed. 2. **org_identifier** - **Description:** GUID (Globally Unique Identifier) or name of the organization. - **Usage:** - Leaving this field empty assumes that the changes should be applied to the current organization - Provide `org_guid` or `org_name` to uniquely identify the organization where changes need to be applied. . - Provide `-1` if changes have to be applied across all the org. --- ## Note Currently, this API is enabled only for updating the `obj_identifier` attribute. Only `text` will be allowed in attribute\'s value. ## Best Practices 1. **Backup Before Conversion:** Always export metadata as a backup before initiating the update process --- ## Examples ### Only `identifier` is given ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"obj_identifier\": \"\", \"type\": \"LOGICAL_COLUMN\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgGuid\" } ``` ### Only `obj_identifier` is given ```json { \"headers_update\": [ { \"obj_identifier\": \"custom_object_id\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": \"orgName\" } ``` ### Executing update for all org `-1` ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"type\": \"ANSWER\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` ### Optional `type` is not provided ```json { \"headers_update\": [ { \"identifier\": \"guid_1\", \"attributes\": [ { \"name\": \"obj_id\", \"value\": \"custom_object_id\" } ] } ], \"org_identifier\": -1 } ``` + * @param updateMetadataHeaderRequest + */ + updateMetadataHeader(updateMetadataHeaderRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateMetadataHeaderRequest === null || updateMetadataHeaderRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateMetadataHeader", "updateMetadataHeaderRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/headers/update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateMetadataHeaderRequest, "UpdateMetadataHeaderRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update object IDs for given metadata objects. Version: 10.8.0.cl or later ## Prerequisites - **Privileges Required:** - `DATAMANAGEMENT` (Can manage data) or `ADMINISTRATION` (Can administer ThoughtSpot). - **Additional Privileges (if RBAC is enabled):** - `ORG_ADMINISTRATION` (Can manage orgs). --- ## Usage Guidelines ### Parameters 1. **metadata** - **Description:** List of metadata objects to update their object IDs. - **Usage:** - Use either `current_obj_id` alone OR use `metadata_identifier` with `type` (when needed). - When using `metadata_identifier`, the `type` field is required if using a name instead of a GUID. - The `new_obj_id` field is always required. --- ## Note This API is specifically designed for updating object IDs of metadata objects. It internally uses the header update mechanism to perform the changes. ## Best Practices 1. **Backup Before Update:** Always export metadata as a backup before initiating the update process. 2. **Validation:** - When using `current_obj_id`, ensure it matches the existing object ID exactly. - When using `metadata_identifier` with a name, ensure the `type` is specified correctly. - Verify that the `new_obj_id` follows your naming conventions and is unique within your system. --- ## Examples ### Using current_obj_id ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with GUID ```json { \"metadata\": [ { \"metadata_identifier\": \"01234567-89ab-cdef-0123-456789abcdef\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Using metadata_identifier with name and type ```json { \"metadata\": [ { \"metadata_identifier\": \"My Answer\", \"type\": \"ANSWER\", \"new_obj_id\": \"new_object_id\" } ] } ``` ### Multiple objects update ```json { \"metadata\": [ { \"current_obj_id\": \"existing_object_id_1\", \"new_obj_id\": \"new_object_id_1\" }, { \"metadata_identifier\": \"My Worksheet\", \"type\": \"LOGICAL_TABLE\", \"new_obj_id\": \"new_object_id_2\" } ] } ``` + * @param updateMetadataObjIdRequest + */ + updateMetadataObjId(updateMetadataObjIdRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateMetadataObjIdRequest === null || updateMetadataObjIdRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateMetadataObjId", "updateMetadataObjIdRequest"); + } + const localVarPath = "/api/rest/2.0/metadata/update-obj-id"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateMetadataObjIdRequest, "UpdateMetadataObjIdRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates an Org object. You can modify Org properties such as name, description, and user associations. Requires cluster administration (**Can administer Org**) privileges. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `ORG_ADMINISTRATION` (**Can manage Orgs**) privilege is required. + * @param orgIdentifier ID or name of the Org + * @param updateOrgRequest + */ + updateOrg(orgIdentifier, updateOrgRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (orgIdentifier === null || orgIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "orgIdentifier"); + } + if (updateOrgRequest === null || updateOrgRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateOrg", "updateOrgRequest"); + } + const localVarPath = "/api/rest/2.0/orgs/{org_identifier}/update".replace("{org_identifier}", encodeURIComponent(String(orgIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateOrgRequest, "UpdateOrgRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.5.0.cl or later Updates the properties of a Role object. Available only if [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance. To update a Role, the `ROLE_ADMINISTRATION` (**Can manage roles**) privilege is required. + * @param roleIdentifier Unique ID or name of the Role. + * @param updateRoleRequest + */ + updateRole(roleIdentifier, updateRoleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (roleIdentifier === null || roleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateRole", "roleIdentifier"); + } + if (updateRoleRequest === null || updateRoleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateRole", "updateRoleRequest"); + } + const localVarPath = "/api/rest/2.0/roles/{role_identifier}/update".replace("{role_identifier}", encodeURIComponent(String(roleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateRoleRequest, "UpdateRoleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Update schedule. Version: 9.4.0.cl or later Updates a scheduled Liveboard job. Requires at least edit access to Liveboards. To update a schedule on behalf of another user, you need `ADMINISTRATION` (**Can administer Org**) or `JOBSCHEDULING` (**Can schedule for others**) privilege and edit access to the Liveboard. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `JOBSCHEDULING` (**Can schedule for others**) privilege is required. The API endpoint allows you to pause a scheduled job, change the status of a paused job. You can also edit the recipients list, frequency of the job, format of the file to send to the recipients in email notifications, PDF options, and time zone setting. + * @param scheduleIdentifier Unique ID or name of the schedule. + * @param updateScheduleRequest + */ + updateSchedule(scheduleIdentifier, updateScheduleRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (scheduleIdentifier === null || scheduleIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "scheduleIdentifier"); + } + if (updateScheduleRequest === null || updateScheduleRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateSchedule", "updateScheduleRequest"); + } + const localVarPath = "/api/rest/2.0/schedules/{schedule_identifier}/update".replace("{schedule_identifier}", encodeURIComponent(String(scheduleIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateScheduleRequest, "UpdateScheduleRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. + * @param updateSystemConfigRequest + */ + updateSystemConfig(updateSystemConfigRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateSystemConfigRequest === null || updateSystemConfigRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateSystemConfig", "updateSystemConfigRequest"); + } + const localVarPath = "/api/rest/2.0/system/config-update"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateSystemConfigRequest, "UpdateSystemConfigRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates a tag object. You can modify the `name` and `color` properties of a tag object. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [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. + * @param tagIdentifier Name or Id of the tag. + * @param updateTagRequest + */ + updateTag(tagIdentifier, updateTagRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (tagIdentifier === null || tagIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateTag", "tagIdentifier"); + } + if (updateTagRequest === null || updateTagRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateTag", "updateTagRequest"); + } + const localVarPath = "/api/rest/2.0/tags/{tag_identifier}/update".replace("{tag_identifier}", encodeURIComponent(String(tagIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateTagRequest, "UpdateTagRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates the properties of a user object. You can modify user properties such as username, email, and share notification settings. You can also assign new groups and Orgs, remove the user from a group or Org, reset password, and modify user preferences. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `USER_ADMINISTRATION` (**Can manage users**) privilege is required. + * @param userIdentifier GUID / name of the user + * @param updateUserRequest + */ + updateUser(userIdentifier, updateUserRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (userIdentifier === null || userIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUser", "userIdentifier"); + } + if (updateUserRequest === null || updateUserRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUser", "updateUserRequest"); + } + const localVarPath = "/api/rest/2.0/users/{user_identifier}/update".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateUserRequest, "UpdateUserRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings + * @param groupIdentifier GUID or name of the group. + * @param updateUserGroupRequest + */ + updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (groupIdentifier === null || groupIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "groupIdentifier"); + } + if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "updateUserGroupRequest"); + } + const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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 + * @param identifier Unique id or name of the variable to update. + * @param updateVariableRequest + */ + updateVariable(identifier, updateVariableRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (identifier === null || identifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "identifier"); + } + if (updateVariableRequest === null || updateVariableRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "updateVariableRequest"); + } + const localVarPath = "/api/rest/2.0/template/variables/{identifier}/update".replace("{identifier}", encodeURIComponent(String(identifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateVariableRequest, "UpdateVariableRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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 + * @param updateVariableValuesRequest + */ + updateVariableValues(updateVariableValuesRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (updateVariableValuesRequest === null || updateVariableValuesRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateVariableValues", "updateVariableValuesRequest"); + } + const localVarPath = "/api/rest/2.0/template/variables/update-values"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateVariableValuesRequest, "UpdateVariableValuesRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (webhookIdentifier === null || webhookIdentifier === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateWebhookConfiguration", "webhookIdentifier"); + } + if (updateWebhookConfigurationRequest === null || updateWebhookConfigurationRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "updateWebhookConfiguration", "updateWebhookConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/{webhook_identifier}/update".replace("{webhook_identifier}", encodeURIComponent(String(webhookIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateWebhookConfigurationRequest, "UpdateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + */ + validateEmailCustomization(_options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + const localVarPath = "/api/rest/2.0/customization/email/validate"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.2.0.cl or later Validates the content of your source branch against the objects in your destination environment. Before merging content from your source branch to the destination branch, run this API operation from your destination environment and ensure that the changes from the source branch function in the destination environment. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. + * @param validateMergeRequest + */ + validateMerge(validateMergeRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (validateMergeRequest === null || validateMergeRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "validateMerge", "validateMergeRequest"); + } + const localVarPath = "/api/rest/2.0/vcs/git/branches/validate"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(validateMergeRequest, "ValidateMergeRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). + * @param validateTokenRequest + */ + validateToken(validateTokenRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (validateTokenRequest === null || validateTokenRequest === void 0) { + throw new RequiredError("ThoughtSpotRestApi", "validateToken", "validateTokenRequest"); + } + const localVarPath = "/api/rest/2.0/auth/token/validate"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var ThoughtSpotRestApiResponseProcessor = class { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to activateUser + * @throws ApiException if the response code was not in [200, 299] + */ + activateUser(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "User", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "User", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to assignChangeAuthor + * @throws ApiException if the response code was not in [200, 299] + */ + assignChangeAuthor(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to assignTag + * @throws ApiException if the response code was not in [200, 299] + */ + assignTag(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to changeUserPassword + * @throws ApiException if the response code was not in [200, 299] + */ + changeUserPassword(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to commitBranch + * @throws ApiException if the response code was not in [200, 299] + */ + commitBranch(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommitResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CommitResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to configureCommunicationChannelPreferences + * @throws ApiException if the response code was not in [200, 299] + */ + configureCommunicationChannelPreferences(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to connectionConfigurationSearch + * @throws ApiException if the response code was not in [200, 299] + */ + connectionConfigurationSearch(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to convertWorksheetToModel + * @throws ApiException if the response code was not in [200, 299] + */ + convertWorksheetToModel(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseWorksheetToModelConversion", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseWorksheetToModelConversion", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to copyObject + * @throws ApiException if the response code was not in [200, 299] + */ + copyObject(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseCopyObject", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("404", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseCopyObject", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createAgentConversation + * @throws ApiException if the response code was not in [200, 299] + */ + createAgentConversation(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AgentConversation", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AgentConversation", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AgentConversation", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createCalendar + * @throws ApiException if the response code was not in [200, 299] + */ + createCalendar(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CalendarResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CalendarResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.0.0.cl or later Updates the properties of a group object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `GROUP_ADMINISTRATION` (**Can manage groups**) privilege is required. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit [privileges](https://developers.thoughtspot.com/docs/?pageid=api-user-management#group-privileges) * Add or remove users * Change sharing visibility settings * Add or remove sub-groups * Assign a default Liveboard or update the existing settings - * @param groupIdentifier GUID or name of the group. - * @param updateUserGroupRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConfig + * @throws ApiException if the response code was not in [200, 299] */ - updateUserGroup(groupIdentifier, updateUserGroupRequest, _options) { + createConfig(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (groupIdentifier === null || groupIdentifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "groupIdentifier"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; } - if (updateUserGroupRequest === null || updateUserGroupRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateUserGroup", "updateUserGroupRequest"); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const localVarPath = "/api/rest/2.0/groups/{group_identifier}/update".replace("{group_identifier}", encodeURIComponent(String(groupIdentifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateUserGroupRequest, "UpdateUserGroupRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * 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 - * @param identifier Unique id or name of the variable to update. - * @param updateVariableRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConnection + * @throws ApiException if the response code was not in [200, 299] */ - updateVariable(identifier, updateVariableRequest, _options) { + createConnection(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (identifier === null || identifier === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "identifier"); - } - if (updateVariableRequest === null || updateVariableRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateVariable", "updateVariableRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateConnectionResponse", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/template/variables/{identifier}/update".replace("{identifier}", encodeURIComponent(String(identifier))); - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateVariableRequest, "UpdateVariableRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - return requestContext; - }); - } - /** - * 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 - * @param updateVariableValuesRequest - */ - updateVariableValues(updateVariableValuesRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (updateVariableValuesRequest === null || updateVariableValuesRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "updateVariableValues", "updateVariableValuesRequest"); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/template/variables/update"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(updateVariableValuesRequest, "UpdateVariableValuesRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateConnectionResponse", + "" + ); + return body; } - return requestContext; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConnectionConfiguration + * @throws ApiException if the response code was not in [200, 299] */ - validateEmailCustomization(_options) { + createConnectionConfiguration(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - const localVarPath = "/api/rest/2.0/customization/email/validate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ConnectionConfigurationResponse", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - return requestContext; - }); - } - /** - * Version: 9.2.0.cl or later Validates the content of your source branch against the objects in your destination environment. Before merging content from your source branch to the destination branch, run this API operation from your destination environment and ensure that the changes from the source branch function in the destination environment. Requires `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) privilege and edit access to the metadata objects. - * @param validateMergeRequest - */ - validateMerge(validateMergeRequest, _options) { - return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (validateMergeRequest === null || validateMergeRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "validateMerge", "validateMergeRequest"); + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } - const localVarPath = "/api/rest/2.0/vcs/git/branches/validate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(validateMergeRequest, "ValidateMergeRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } - return requestContext; + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ConnectionConfigurationResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } /** - * Version: 9.12.0.cl or later Validates the authentication token specified in the API request. If your token is not valid, [Get a new token](#/http/api-endpoints/authentication/get-full-access-token). - * @param validateTokenRequest + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createConversation + * @throws ApiException if the response code was not in [200, 299] */ - validateToken(validateTokenRequest, _options) { + createConversation(response) { return __async(this, null, function* () { - var _a, _b, _c; - let _config = _options || this.configuration; - if (validateTokenRequest === null || validateTokenRequest === void 0) { - throw new RequiredError("ThoughtSpotRestApi", "validateToken", "validateTokenRequest"); + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Conversation", + "" + ); + return body; } - const localVarPath = "/api/rest/2.0/auth/token/validate"; - const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); - requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); - const contentType = ObjectSerializer.getPreferredMediaType([ - "application/json" - ]); - requestContext.setHeaderParam("Content-Type", contentType); - const serializedBody = ObjectSerializer.stringify( - ObjectSerializer.serialize(validateTokenRequest, "ValidateTokenRequest", ""), - contentType - ); - requestContext.setBody(serializedBody); - let authMethod; - authMethod = _config.authMethods["bearerAuth"]; - if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { - yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Conversation", + "" + ); + return body; } - const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); - if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { - yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - return requestContext; + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Conversation", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } -}; -var ThoughtSpotRestApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to activateUser + * @params response Response returned by the server for a request to createCustomAction * @throws ApiException if the response code was not in [200, 299] */ - activateUser(response) { + createCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "ResponseCustomAction", "" ); return body; @@ -28128,7 +32658,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "ResponseCustomAction", "" ); return body; @@ -28140,14 +32670,72 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignChangeAuthor + * @params response Response returned by the server for a request to createEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - assignChangeAuthor(response) { + createEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "CreateEmailCustomizationResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createOrg + * @throws ApiException if the response code was not in [200, 299] + */ + createOrg(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "OrgResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28184,7 +32772,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "OrgResponse", "" ); return body; @@ -28196,14 +32784,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to assignTag + * @params response Response returned by the server for a request to createRole * @throws ApiException if the response code was not in [200, 299] */ - assignTag(response) { + createRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RoleResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28211,7 +32804,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28235,12 +32828,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "RoleResponse", "" ); return body; @@ -28252,14 +32845,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to changeUserPassword + * @params response Response returned by the server for a request to createSchedule * @throws ApiException if the response code was not in [200, 299] */ - changeUserPassword(response) { + createSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ResponseSchedule", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -28296,7 +32894,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "ResponseSchedule", "" ); return body; @@ -28308,16 +32906,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to commitBranch + * @params response Response returned by the server for a request to createTag * @throws ApiException if the response code was not in [200, 299] */ - commitBranch(response) { + createTag(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CommitResponse", + "Tag", "" ); return body; @@ -28357,7 +32955,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CommitResponse", + "Tag", "" ); return body; @@ -28369,16 +32967,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to connectionConfigurationSearch + * @params response Response returned by the server for a request to createUser * @throws ApiException if the response code was not in [200, 299] */ - connectionConfigurationSearch(response) { + createUser(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -28418,7 +33016,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "User", "" ); return body; @@ -28430,16 +33028,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to convertWorksheetToModel + * @params response Response returned by the server for a request to createUserGroup * @throws ApiException if the response code was not in [200, 299] */ - convertWorksheetToModel(response) { + createUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -28479,7 +33077,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseWorksheetToModelConversion", + "UserGroupResponse", "" ); return body; @@ -28491,16 +33089,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to copyObject + * @params response Response returned by the server for a request to createVariable * @throws ApiException if the response code was not in [200, 299] */ - copyObject(response) { + createVariable(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", + "Variable", "" ); return body; @@ -28529,14 +33127,6 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } - if (isCodeInRange("404", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Object not found", body, response.headers); - } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -28548,7 +33138,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCopyObject", + "Variable", "" ); return body; @@ -28560,16 +33150,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createCalendar + * @params response Response returned by the server for a request to createWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - createCalendar(response) { + createWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", + "WebhookResponse", "" ); return body; @@ -28609,7 +33199,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CalendarResponse", + "WebhookResponse", "" ); return body; @@ -28621,16 +33211,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConfig + * @params response Response returned by the server for a request to dbtConnection * @throws ApiException if the response code was not in [200, 299] */ - createConfig(response) { + dbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "any", "" ); return body; @@ -28670,7 +33260,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "any", "" ); return body; @@ -28682,16 +33272,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConnection + * @params response Response returned by the server for a request to dbtGenerateSyncTml * @throws ApiException if the response code was not in [200, 299] */ - createConnection(response) { + dbtGenerateSyncTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", + "any", "" ); return body; @@ -28731,7 +33321,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateConnectionResponse", + "any", "" ); return body; @@ -28743,16 +33333,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createConnectionConfiguration + * @params response Response returned by the server for a request to dbtGenerateTml * @throws ApiException if the response code was not in [200, 299] */ - createConnectionConfiguration(response) { + dbtGenerateTml(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", + "any", "" ); return body; @@ -28792,60 +33382,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ConnectionConfigurationResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createConversation - * @throws ApiException if the response code was not in [200, 299] - */ - createConversation(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - if (isCodeInRange("201", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Conversation", + "any", "" ); return body; @@ -28857,16 +33394,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createCustomAction + * @params response Response returned by the server for a request to dbtSearch * @throws ApiException if the response code was not in [200, 299] */ - createCustomAction(response) { + dbtSearch(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", + "Array", "" ); return body; @@ -28906,60 +33443,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseCustomAction", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createEmailCustomization - * @throws ApiException if the response code was not in [200, 299] - */ - createEmailCustomization(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "CreateEmailCustomizationResponse", + "Array", "" ); return body; @@ -28971,16 +33455,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createOrg + * @params response Response returned by the server for a request to deactivateUser * @throws ApiException if the response code was not in [200, 299] */ - createOrg(response) { + deactivateUser(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", + "ResponseActivationURL", "" ); return body; @@ -29020,68 +33504,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "OrgResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to createRole - * @throws ApiException if the response code was not in [200, 299] - */ - createRole(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", - "" - ); - return body; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid parameters.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "RoleResponse", + "ResponseActivationURL", "" ); return body; @@ -29093,19 +33516,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createSchedule + * @params response Response returned by the server for a request to deleteCalendar * @throws ApiException if the response code was not in [200, 299] */ - createSchedule(response) { + deleteCalendar(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29142,7 +33560,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseSchedule", + "void", "" ); return body; @@ -29154,19 +33572,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createTag + * @params response Response returned by the server for a request to deleteConfig * @throws ApiException if the response code was not in [200, 299] */ - createTag(response) { + deleteConfig(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29203,7 +33616,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Tag", + "void", "" ); return body; @@ -29215,19 +33628,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUser + * @params response Response returned by the server for a request to deleteConnection * @throws ApiException if the response code was not in [200, 299] */ - createUser(response) { + deleteConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "User", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29264,7 +33672,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "void", "" ); return body; @@ -29276,19 +33684,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createUserGroup + * @params response Response returned by the server for a request to deleteConnectionConfiguration * @throws ApiException if the response code was not in [200, 299] */ - createUserGroup(response) { + deleteConnectionConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29325,7 +33728,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "UserGroupResponse", + "void", "" ); return body; @@ -29337,19 +33740,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to createVariable + * @params response Response returned by the server for a request to deleteConnectionV2 * @throws ApiException if the response code was not in [200, 299] */ - createVariable(response) { + deleteConnectionV2(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Variable", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29386,7 +33784,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Variable", + "void", "" ); return body; @@ -29398,19 +33796,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtConnection + * @params response Response returned by the server for a request to deleteCustomAction * @throws ApiException if the response code was not in [200, 299] */ - dbtConnection(response) { + deleteCustomAction(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29447,7 +33840,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -29459,19 +33852,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateSyncTml + * @params response Response returned by the server for a request to deleteDbtConnection * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateSyncTml(response) { + deleteDbtConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29508,7 +33896,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -29520,19 +33908,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtGenerateTml + * @params response Response returned by the server for a request to deleteEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - dbtGenerateTml(response) { + deleteEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "any", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29542,21 +33925,13 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29569,7 +33944,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "void", "" ); return body; @@ -29581,19 +33956,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to dbtSearch + * @params response Response returned by the server for a request to deleteMetadata * @throws ApiException if the response code was not in [200, 299] */ - dbtSearch(response) { + deleteMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29630,7 +34000,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -29642,19 +34012,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deactivateUser + * @params response Response returned by the server for a request to deleteOrg * @throws ApiException if the response code was not in [200, 299] */ - deactivateUser(response) { + deleteOrg(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseActivationURL", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29691,7 +34056,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ResponseActivationURL", + "void", "" ); return body; @@ -29703,10 +34068,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCalendar + * @params response Response returned by the server for a request to deleteOrgEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - deleteCalendar(response) { + deleteOrgEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -29734,7 +34099,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -29759,10 +34124,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConfig + * @params response Response returned by the server for a request to deleteRole * @throws ApiException if the response code was not in [200, 299] */ - deleteConfig(response) { + deleteRole(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -29798,7 +34163,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( @@ -29815,10 +34180,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnection + * @params response Response returned by the server for a request to deleteSchedule * @throws ApiException if the response code was not in [200, 299] */ - deleteConnection(response) { + deleteSchedule(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -29871,10 +34236,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionConfiguration + * @params response Response returned by the server for a request to deleteTag * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionConfiguration(response) { + deleteTag(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -29927,10 +34292,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteConnectionV2 + * @params response Response returned by the server for a request to deleteUser * @throws ApiException if the response code was not in [200, 299] */ - deleteConnectionV2(response) { + deleteUser(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -29983,10 +34348,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteCustomAction + * @params response Response returned by the server for a request to deleteUserGroup * @throws ApiException if the response code was not in [200, 299] */ - deleteCustomAction(response) { + deleteUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30039,10 +34404,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteDbtConnection + * @params response Response returned by the server for a request to deleteVariable * @throws ApiException if the response code was not in [200, 299] */ - deleteDbtConnection(response) { + deleteVariable(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -30095,63 +34460,20 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteEmailCustomization + * @params response Response returned by the server for a request to deleteWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - deleteEmailCustomization(response) { + deleteWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "WebhookDeleteResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteMetadata - * @throws ApiException if the response code was not in [200, 299] - */ - deleteMetadata(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -30187,7 +34509,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "WebhookDeleteResponse", "" ); return body; @@ -30199,71 +34521,20 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteOrg + * @params response Response returned by the server for a request to deployCommit * @throws ApiException if the response code was not in [200, 299] */ - deleteOrg(response) { + deployCommit(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to deleteOrgEmailCustomization - * @throws ApiException if the response code was not in [200, 299] - */ - deleteOrgEmailCustomization(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -30286,7 +34557,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30299,7 +34570,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -30311,20 +34582,21 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteRole + * @params response Response returned by the server for a request to downloadConnectionMetadataChanges * @throws ApiException if the response code was not in [200, 299] */ - deleteRole(response) { + downloadConnectionMetadataChanges(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30332,7 +34604,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30340,7 +34612,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30348,15 +34620,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" + "HttpFile", + "binary" ); return body; } @@ -30367,20 +34639,21 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteSchedule + * @params response Response returned by the server for a request to exportAnswerReport * @throws ApiException if the response code was not in [200, 299] */ - deleteSchedule(response) { + exportAnswerReport(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30388,7 +34661,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30396,7 +34669,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30404,15 +34677,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" + "HttpFile", + "binary" ); return body; } @@ -30423,20 +34696,21 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteTag + * @params response Response returned by the server for a request to exportLiveboardReport * @throws ApiException if the response code was not in [200, 299] */ - deleteTag(response) { + exportLiveboardReport(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = yield response.getBodyAsFile(); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30444,7 +34718,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30452,7 +34726,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30460,15 +34734,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "" + "binary" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", - "" + "HttpFile", + "binary" ); return body; } @@ -30479,14 +34753,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteUser + * @params response Response returned by the server for a request to exportMetadataTML * @throws ApiException if the response code was not in [200, 299] */ - deleteUser(response) { + exportMetadataTML(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30523,7 +34802,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -30535,14 +34814,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteUserGroup + * @params response Response returned by the server for a request to exportMetadataTMLBatched * @throws ApiException if the response code was not in [200, 299] */ - deleteUserGroup(response) { + exportMetadataTMLBatched(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "any", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30579,7 +34863,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "any", "" ); return body; @@ -30591,14 +34875,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deleteVariable + * @params response Response returned by the server for a request to fetchAnswerData * @throws ApiException if the response code was not in [200, 299] */ - deleteVariable(response) { + fetchAnswerData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "AnswerDataResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -30635,7 +34924,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "AnswerDataResponse", "" ); return body; @@ -30647,16 +34936,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to deployCommit + * @params response Response returned by the server for a request to fetchAnswerSqlQuery * @throws ApiException if the response code was not in [200, 299] */ - deployCommit(response) { + fetchAnswerSqlQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SqlQueryResponse", "" ); return body; @@ -30696,7 +34985,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SqlQueryResponse", "" ); return body; @@ -30708,21 +34997,25 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to downloadConnectionMetadataChanges + * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus * @throws ApiException if the response code was not in [200, 299] */ - downloadConnectionMetadataChanges(response) { + fetchAsyncImportTaskStatus(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "GetAsyncImportStatusResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30730,7 +35023,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30738,7 +35031,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30746,15 +35039,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "GetAsyncImportStatusResponse", + "" ); return body; } @@ -30765,29 +35058,33 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportAnswerReport + * @params response Response returned by the server for a request to fetchColumnSecurityRules * @throws ApiException if the response code was not in [200, 299] */ - exportAnswerReport(response) { + fetchColumnSecurityRules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30795,23 +35092,23 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "Array", + "" ); return body; } @@ -30822,21 +35119,25 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportLiveboardReport + * @params response Response returned by the server for a request to fetchConnectionDiffStatus * @throws ApiException if the response code was not in [200, 299] */ - exportLiveboardReport(response) { + fetchConnectionDiffStatus(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { - const body = yield response.getBodyAsFile(); + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "FetchConnectionDiffStatusResponse", + "" + ); return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } @@ -30844,7 +35145,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } @@ -30852,7 +35153,7 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } @@ -30860,15 +35161,15 @@ var ThoughtSpotRestApiResponseProcessor = class { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", - "binary" + "" ); throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "HttpFile", - "binary" + "FetchConnectionDiffStatusResponse", + "" ); return body; } @@ -30879,16 +35180,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTML + * @params response Response returned by the server for a request to fetchLiveboardData * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTML(response) { + fetchLiveboardData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "LiveboardDataResponse", "" ); return body; @@ -30928,7 +35229,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "LiveboardDataResponse", "" ); return body; @@ -30940,16 +35241,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to exportMetadataTMLBatched + * @params response Response returned by the server for a request to fetchLiveboardSqlQuery * @throws ApiException if the response code was not in [200, 299] */ - exportMetadataTMLBatched(response) { + fetchLiveboardSqlQuery(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "SqlQueryResponse", "" ); return body; @@ -30989,7 +35290,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "SqlQueryResponse", "" ); return body; @@ -31001,16 +35302,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerData + * @params response Response returned by the server for a request to fetchLogs * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerData(response) { + fetchLogs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "Array", "" ); return body; @@ -31050,7 +35351,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AnswerDataResponse", + "Array", "" ); return body; @@ -31062,16 +35363,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAnswerSqlQuery + * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals * @throws ApiException if the response code was not in [200, 299] */ - fetchAnswerSqlQuery(response) { + fetchPermissionsOfPrincipals(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "PermissionOfPrincipalsResponse", "" ); return body; @@ -31111,7 +35412,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "PermissionOfPrincipalsResponse", "" ); return body; @@ -31123,16 +35424,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchAsyncImportTaskStatus + * @params response Response returned by the server for a request to fetchPermissionsOnMetadata * @throws ApiException if the response code was not in [200, 299] */ - fetchAsyncImportTaskStatus(response) { + fetchPermissionsOnMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", + "PermissionOfMetadataResponse", "" ); return body; @@ -31172,7 +35473,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetAsyncImportStatusResponse", + "PermissionOfMetadataResponse", "" ); return body; @@ -31184,19 +35485,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchColumnSecurityRules + * @params response Response returned by the server for a request to forceLogoutUsers * @throws ApiException if the response code was not in [200, 299] */ - fetchColumnSecurityRules(response) { + forceLogoutUsers(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31204,7 +35500,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Bad request - Table not found or invalid parameters", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31220,7 +35516,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden - User doesn't have permission to access security rules for this table", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31228,12 +35524,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal server error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -31245,16 +35541,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchConnectionDiffStatus + * @params response Response returned by the server for a request to generateCSV * @throws ApiException if the response code was not in [200, 299] */ - fetchConnectionDiffStatus(response) { + generateCSV(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "any", "" ); return body; @@ -31294,7 +35590,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "FetchConnectionDiffStatusResponse", + "any", "" ); return body; @@ -31306,16 +35602,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLiveboardData + * @params response Response returned by the server for a request to getCurrentUserInfo * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardData(response) { + getCurrentUserInfo(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", + "User", "" ); return body; @@ -31355,7 +35651,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "LiveboardDataResponse", + "User", "" ); return body; @@ -31367,16 +35663,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLiveboardSqlQuery + * @params response Response returned by the server for a request to getCurrentUserToken * @throws ApiException if the response code was not in [200, 299] */ - fetchLiveboardSqlQuery(response) { + getCurrentUserToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "GetTokenResponse", "" ); return body; @@ -31416,7 +35712,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SqlQueryResponse", + "GetTokenResponse", "" ); return body; @@ -31428,16 +35724,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchLogs + * @params response Response returned by the server for a request to getCustomAccessToken * @throws ApiException if the response code was not in [200, 299] */ - fetchLogs(response) { + getCustomAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "AccessToken", "" ); return body; @@ -31448,7 +35744,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); } if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31456,7 +35752,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31464,7 +35760,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31472,12 +35768,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "AccessToken", "" ); return body; @@ -31489,43 +35785,35 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOfPrincipals + * @params response Response returned by the server for a request to getDataSourceSuggestions * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOfPrincipals(response) { + getDataSourceSuggestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "EurekaDataSourceSuggestionResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "EurekaDataSourceSuggestionResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31533,12 +35821,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfPrincipalsResponse", + "EurekaDataSourceSuggestionResponse", "" ); return body; @@ -31550,16 +35838,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to fetchPermissionsOnMetadata + * @params response Response returned by the server for a request to getFullAccessToken * @throws ApiException if the response code was not in [200, 299] */ - fetchPermissionsOnMetadata(response) { + getFullAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "Token", "" ); return body; @@ -31599,7 +35887,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "PermissionOfMetadataResponse", + "Token", "" ); return body; @@ -31611,72 +35899,24 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to forceLogoutUsers + * @params response Response returned by the server for a request to getNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - forceLogoutUsers(response) { + getNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; - } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "EurekaGetNLInstructionsResponse", "" ); return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to generateCSV - * @throws ApiException if the response code was not in [200, 299] - */ - generateCSV(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "EurekaGetNLInstructionsResponse", "" ); return body; @@ -31687,23 +35927,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31711,12 +35935,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "any", + "EurekaGetNLInstructionsResponse", "" ); return body; @@ -31728,16 +35952,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserInfo + * @params response Response returned by the server for a request to getObjectAccessToken * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserInfo(response) { + getObjectAccessToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "Token", "" ); return body; @@ -31777,7 +36001,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "User", + "Token", "" ); return body; @@ -31789,77 +36013,24 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getCurrentUserToken + * @params response Response returned by the server for a request to getRelevantQuestions * @throws ApiException if the response code was not in [200, 299] */ - getCurrentUserToken(response) { + getRelevantQuestions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", + "EurekaGetRelevantQuestionsResponse", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); - } - if (isCodeInRange("500", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); - } - if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "GetTokenResponse", - "" - ); - return body; - } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); - }); - } - /** - * Unwraps the actual response sent by the server from the response context and deserializes the response content - * to the expected objects - * - * @params response Response returned by the server for a request to getCustomAccessToken - * @throws ApiException if the response code was not in [200, 299] - */ - getCustomAccessToken(response) { - return __async(this, null, function* () { - const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaGetRelevantQuestionsResponse", "" ); return body; @@ -31870,23 +36041,7 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request. This could be due to missing or incorrect parameters.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access. The request could not be authenticated.", body, response.headers); - } - if (isCodeInRange("403", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Forbidden access. The user does not have permission to access this resource.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -31894,12 +36049,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "An unexpected error occurred on the server.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "AccessToken", + "EurekaGetRelevantQuestionsResponse", "" ); return body; @@ -31911,16 +36066,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getFullAccessToken + * @params response Response returned by the server for a request to getSystemConfig * @throws ApiException if the response code was not in [200, 299] */ - getFullAccessToken(response) { + getSystemConfig(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemConfig", "" ); return body; @@ -31960,7 +36115,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemConfig", "" ); return body; @@ -31972,16 +36127,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getObjectAccessToken + * @params response Response returned by the server for a request to getSystemInformation * @throws ApiException if the response code was not in [200, 299] */ - getObjectAccessToken(response) { + getSystemInformation(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemInfo", "" ); return body; @@ -32021,7 +36176,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Token", + "SystemInfo", "" ); return body; @@ -32033,16 +36188,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getSystemConfig + * @params response Response returned by the server for a request to getSystemOverrideInfo * @throws ApiException if the response code was not in [200, 299] */ - getSystemConfig(response) { + getSystemOverrideInfo(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", + "SystemOverrideInfo", "" ); return body; @@ -32082,7 +36237,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemConfig", + "SystemOverrideInfo", "" ); return body; @@ -32094,16 +36249,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getSystemInformation + * @params response Response returned by the server for a request to importMetadataTML * @throws ApiException if the response code was not in [200, 299] */ - getSystemInformation(response) { + importMetadataTML(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", + "Array", "" ); return body; @@ -32143,7 +36298,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemInfo", + "Array", "" ); return body; @@ -32155,16 +36310,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to getSystemOverrideInfo + * @params response Response returned by the server for a request to importMetadataTMLAsync * @throws ApiException if the response code was not in [200, 299] */ - getSystemOverrideInfo(response) { + importMetadataTMLAsync(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -32204,7 +36359,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SystemOverrideInfo", + "ImportEPackAsyncTaskStatus", "" ); return body; @@ -32216,16 +36371,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importMetadataTML + * @params response Response returned by the server for a request to importUserGroups * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTML(response) { + importUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ImportUserGroupsResponse", "" ); return body; @@ -32265,7 +36420,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "ImportUserGroupsResponse", "" ); return body; @@ -32277,16 +36432,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importMetadataTMLAsync + * @params response Response returned by the server for a request to importUsers * @throws ApiException if the response code was not in [200, 299] */ - importMetadataTMLAsync(response) { + importUsers(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", + "ImportUsersResponse", "" ); return body; @@ -32326,7 +36481,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportEPackAsyncTaskStatus", + "ImportUsersResponse", "" ); return body; @@ -32338,19 +36493,14 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importUserGroups + * @params response Response returned by the server for a request to login * @throws ApiException if the response code was not in [200, 299] */ - importUserGroups(response) { + login(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32387,7 +36537,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUserGroupsResponse", + "void", "" ); return body; @@ -32399,20 +36549,71 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to importUsers + * @params response Response returned by the server for a request to logout * @throws ApiException if the response code was not in [200, 299] */ - importUsers(response) { + logout(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUsersResponse", + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", "" ); return body; } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to parameterizeMetadata + * @throws ApiException if the response code was not in [200, 299] + */ + parameterizeMetadata(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), @@ -32448,7 +36649,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ImportUsersResponse", + "void", "" ); return body; @@ -32460,10 +36661,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to login + * @params response Response returned by the server for a request to publishMetadata * @throws ApiException if the response code was not in [200, 299] */ - login(response) { + publishMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -32516,10 +36717,63 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to logout + * @params response Response returned by the server for a request to queryGetDecomposedQuery * @throws ApiException if the response code was not in [200, 299] */ - logout(response) { + queryGetDecomposedQuery(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaDecomposeQueryResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaDecomposeQueryResponse", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "EurekaDecomposeQueryResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to resetUserPassword + * @throws ApiException if the response code was not in [200, 299] + */ + resetUserPassword(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -32572,14 +36826,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to parameterizeMetadata + * @params response Response returned by the server for a request to revertCommit * @throws ApiException if the response code was not in [200, 299] */ - parameterizeMetadata(response) { + revertCommit(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RevertResponse", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32616,7 +36875,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "RevertResponse", "" ); return body; @@ -32628,10 +36887,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to publishMetadata + * @params response Response returned by the server for a request to revokeToken * @throws ApiException if the response code was not in [200, 299] */ - publishMetadata(response) { + revokeToken(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -32684,35 +36943,43 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to queryGetDecomposedQuery + * @params response Response returned by the server for a request to searchCalendars * @throws ApiException if the response code was not in [200, 299] */ - queryGetDecomposedQuery(response) { + searchCalendars(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", + "Array", "" ); return body; } - if (isCodeInRange("201", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", + "ErrorResponse", "" ); - return body; + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("400", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32720,12 +36987,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "EurekaDecomposeQueryResponse", + "Array", "" ); return body; @@ -32737,14 +37004,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to resetUserPassword + * @params response Response returned by the server for a request to searchCommits * @throws ApiException if the response code was not in [200, 299] */ - resetUserPassword(response) { + searchCommits(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32781,7 +37053,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -32793,16 +37065,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to revertCommit + * @params response Response returned by the server for a request to searchCommunicationChannelPreferences * @throws ApiException if the response code was not in [200, 299] */ - revertCommit(response) { + searchCommunicationChannelPreferences(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RevertResponse", + "CommunicationChannelPreferencesResponse", "" ); return body; @@ -32842,7 +37114,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RevertResponse", + "CommunicationChannelPreferencesResponse", "" ); return body; @@ -32854,14 +37126,19 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to revokeToken + * @params response Response returned by the server for a request to searchConfig * @throws ApiException if the response code was not in [200, 299] */ - revokeToken(response) { + searchConfig(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("204", response.httpStatusCode)) { - return; + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -32898,7 +37175,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "void", + "Array", "" ); return body; @@ -32910,16 +37187,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCalendars + * @params response Response returned by the server for a request to searchConnection * @throws ApiException if the response code was not in [200, 299] */ - searchCalendars(response) { + searchConnection(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -32959,7 +37236,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -32971,16 +37248,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCommits + * @params response Response returned by the server for a request to searchCustomActions * @throws ApiException if the response code was not in [200, 299] */ - searchCommits(response) { + searchCustomActions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33020,7 +37297,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33032,16 +37309,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConfig + * @params response Response returned by the server for a request to searchData * @throws ApiException if the response code was not in [200, 299] */ - searchConfig(response) { + searchData(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SearchDataResponse", "" ); return body; @@ -33081,7 +37358,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SearchDataResponse", "" ); return body; @@ -33093,16 +37370,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConnection + * @params response Response returned by the server for a request to searchEmailCustomization * @throws ApiException if the response code was not in [200, 299] */ - searchConnection(response) { + searchEmailCustomization(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33115,21 +37392,13 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); - } if (isCodeInRange("403", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33142,7 +37411,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33154,16 +37423,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCustomActions + * @params response Response returned by the server for a request to searchMetadata * @throws ApiException if the response code was not in [200, 299] */ - searchCustomActions(response) { + searchMetadata(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33203,7 +37472,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33215,16 +37484,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchData + * @params response Response returned by the server for a request to searchOrgs * @throws ApiException if the response code was not in [200, 299] */ - searchData(response) { + searchOrgs(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "Array", "" ); return body; @@ -33264,7 +37533,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "SearchDataResponse", + "Array", "" ); return body; @@ -33276,16 +37545,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchEmailCustomization + * @params response Response returned by the server for a request to searchRoles * @throws ApiException if the response code was not in [200, 299] */ - searchEmailCustomization(response) { + searchRoles(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33298,7 +37567,7 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("401", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", @@ -33306,18 +37575,26 @@ var ThoughtSpotRestApiResponseProcessor = class { ); throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33329,16 +37606,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchMetadata + * @params response Response returned by the server for a request to searchSchedules * @throws ApiException if the response code was not in [200, 299] */ - searchMetadata(response) { + searchSchedules(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33378,7 +37655,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33390,16 +37667,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchOrgs + * @params response Response returned by the server for a request to searchTags * @throws ApiException if the response code was not in [200, 299] */ - searchOrgs(response) { + searchTags(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33439,7 +37716,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33451,16 +37728,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchRoles + * @params response Response returned by the server for a request to searchUserGroups * @throws ApiException if the response code was not in [200, 299] */ - searchRoles(response) { + searchUserGroups(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33495,12 +37772,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Internal error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33512,16 +37789,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchSchedules + * @params response Response returned by the server for a request to searchUsers * @throws ApiException if the response code was not in [200, 299] */ - searchSchedules(response) { + searchUsers(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33561,7 +37838,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33573,16 +37850,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchTags + * @params response Response returned by the server for a request to searchVariables * @throws ApiException if the response code was not in [200, 299] */ - searchTags(response) { + searchVariables(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33622,7 +37899,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33634,16 +37911,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchUserGroups + * @params response Response returned by the server for a request to searchWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - searchUserGroups(response) { + searchWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookSearchResponse", "" ); return body; @@ -33683,7 +37960,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookSearchResponse", "" ); return body; @@ -33695,43 +37972,35 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchUsers + * @params response Response returned by the server for a request to sendAgentMessage * @throws ApiException if the response code was not in [200, 299] */ - searchUsers(response) { + sendAgentMessage(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "any", "" ); return body; } - if (isCodeInRange("400", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", - "" - ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); - } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "ErrorResponse", + "any", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + return body; } - if (isCodeInRange("403", response.httpStatusCode)) { + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33739,12 +38008,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "any", "" ); return body; @@ -33756,16 +38025,24 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchVariables + * @params response Response returned by the server for a request to sendAgentMessageStreaming * @throws ApiException if the response code was not in [200, 299] */ - searchVariables(response) { + sendAgentMessageStreaming(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "SendAgentMessageResponse", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", "" ); return body; @@ -33776,23 +38053,60 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("401", response.httpStatusCode)) { + if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } - if (isCodeInRange("403", response.httpStatusCode)) { + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "SendAgentMessageResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to sendMessage + * @throws ApiException if the response code was not in [200, 299] + */ + sendMessage(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("201", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (isCodeInRange("500", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -33800,12 +38114,12 @@ var ThoughtSpotRestApiResponseProcessor = class { "ErrorResponse", "" ); - throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + throw new ApiException(response.httpStatusCode, "Operation failed", body, response.headers); } if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "Array", "" ); return body; @@ -33817,16 +38131,16 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to sendMessage + * @params response Response returned by the server for a request to setNLInstructions * @throws ApiException if the response code was not in [200, 299] */ - sendMessage(response) { + setNLInstructions(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -33834,7 +38148,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (isCodeInRange("201", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -33858,7 +38172,7 @@ var ThoughtSpotRestApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "EurekaSetNLInstructionsResponse", "" ); return body; @@ -35058,10 +39372,66 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateUser + * @params response Response returned by the server for a request to updateUser + * @throws ApiException if the response code was not in [200, 299] + */ + updateUser(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("204", response.httpStatusCode)) { + return; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "void", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateUserGroup * @throws ApiException if the response code was not in [200, 299] */ - updateUser(response) { + updateUserGroup(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35114,10 +39484,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateUserGroup + * @params response Response returned by the server for a request to updateVariable * @throws ApiException if the response code was not in [200, 299] */ - updateUserGroup(response) { + updateVariable(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35170,10 +39540,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateVariable + * @params response Response returned by the server for a request to updateVariableValues * @throws ApiException if the response code was not in [200, 299] */ - updateVariable(response) { + updateVariableValues(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35226,10 +39596,10 @@ var ThoughtSpotRestApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateVariableValues + * @params response Response returned by the server for a request to updateWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - updateVariableValues(response) { + updateWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("204", response.httpStatusCode)) { @@ -35466,7 +39836,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/activate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35502,7 +39873,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/change-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35538,7 +39910,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35574,7 +39947,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/deactivate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35610,7 +39984,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/{user_identifier}/delete".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -35637,7 +40012,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/force-logout"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35673,7 +40049,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/import"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35709,7 +40086,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/reset-password"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35745,7 +40123,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -35785,7 +40164,8 @@ var UsersApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/users/{user_identifier}/update".replace("{user_identifier}", encodeURIComponent(String(userIdentifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36399,7 +40779,7 @@ var UsersApiResponseProcessor = class { // apis/VariableApi.ts var VariableApiRequestFactory = class extends BaseAPIRequestFactory { /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -36412,7 +40792,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36435,7 +40816,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -36448,7 +40829,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/{identifier}/delete".replace("{identifier}", encodeURIComponent(String(identifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); let authMethod; authMethod = _config.authMethods["bearerAuth"]; if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { @@ -36462,7 +40844,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -36475,7 +40857,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36498,7 +40881,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -36515,7 +40898,8 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/template/variables/{identifier}/update".replace("{identifier}", encodeURIComponent(String(identifier))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36538,7 +40922,7 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { }); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -36548,10 +40932,11 @@ var VariableApiRequestFactory = class extends BaseAPIRequestFactory { if (updateVariableValuesRequest === null || updateVariableValuesRequest === void 0) { throw new RequiredError("VariableApi", "updateVariableValues", "updateVariableValuesRequest"); } - const localVarPath = "/api/rest/2.0/template/variables/update"; + const localVarPath = "/api/rest/2.0/template/variables/update-values"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36883,7 +41268,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/branches/commit"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36919,7 +41305,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/create"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36955,7 +41342,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/delete"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -36991,7 +41379,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/commits/deploy"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37031,7 +41420,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/commits/{commit_id}/revert".replace("{commit_id}", encodeURIComponent(String(commitId))); const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37067,7 +41457,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/commits/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37103,7 +41494,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/search"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37139,7 +41531,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/config/update"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37175,7 +41568,8 @@ var VersionControlApiRequestFactory = class extends BaseAPIRequestFactory { const localVarPath = "/api/rest/2.0/vcs/git/branches/validate"; const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); - requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.17.1"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); const contentType = ObjectSerializer.getPreferredMediaType([ "application/json" ]); @@ -37491,7 +41885,251 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RevertResponse", + "RevertResponse", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchCommits + * @throws ApiException if the response code was not in [200, 299] + */ + searchCommits(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to searchConfig + * @throws ApiException if the response code was not in [200, 299] + */ + searchConfig(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateConfig + * @throws ApiException if the response code was not in [200, 299] + */ + updateConfig(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "RepoConfigObject", + "" + ); + return body; + } + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); + }); + } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to validateMerge + * @throws ApiException if the response code was not in [200, 299] + */ + validateMerge(response) { + return __async(this, null, function* () { + const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); + if (isCodeInRange("200", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", + "" + ); + return body; + } + if (isCodeInRange("400", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Invalid request.", body, response.headers); + } + if (isCodeInRange("401", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unauthorized access.", body, response.headers); + } + if (isCodeInRange("403", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Forbidden access.", body, response.headers); + } + if (isCodeInRange("500", response.httpStatusCode)) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "ErrorResponse", + "" + ); + throw new ApiException(response.httpStatusCode, "Unexpected error", body, response.headers); + } + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body = ObjectSerializer.deserialize( + ObjectSerializer.parse(yield response.body.text(), contentType), + "Array", "" ); return body; @@ -37499,20 +42137,178 @@ var VersionControlApiResponseProcessor = class { throw new ApiException(response.httpStatusCode, "Unknown API Status Code!", yield response.getBodyAsAny(), response.headers); }); } +}; + +// apis/WebhooksApi.ts +var WebhooksApiRequestFactory = class extends BaseAPIRequestFactory { + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (createWebhookConfigurationRequest === null || createWebhookConfigurationRequest === void 0) { + throw new RequiredError("WebhooksApi", "createWebhookConfiguration", "createWebhookConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/create"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(createWebhookConfigurationRequest, "CreateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (deleteWebhookConfigurationsRequest === null || deleteWebhookConfigurationsRequest === void 0) { + throw new RequiredError("WebhooksApi", "deleteWebhookConfigurations", "deleteWebhookConfigurationsRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/delete"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(deleteWebhookConfigurationsRequest, "DeleteWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (searchWebhookConfigurationsRequest === null || searchWebhookConfigurationsRequest === void 0) { + throw new RequiredError("WebhooksApi", "searchWebhookConfigurations", "searchWebhookConfigurationsRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/search"; + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(searchWebhookConfigurationsRequest, "SearchWebhookConfigurationsRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + return __async(this, null, function* () { + var _a, _b, _c; + let _config = _options || this.configuration; + if (webhookIdentifier === null || webhookIdentifier === void 0) { + throw new RequiredError("WebhooksApi", "updateWebhookConfiguration", "webhookIdentifier"); + } + if (updateWebhookConfigurationRequest === null || updateWebhookConfigurationRequest === void 0) { + throw new RequiredError("WebhooksApi", "updateWebhookConfiguration", "updateWebhookConfigurationRequest"); + } + const localVarPath = "/api/rest/2.0/webhooks/{webhook_identifier}/update".replace("{webhook_identifier}", encodeURIComponent(String(webhookIdentifier))); + const requestContext = _config.baseServer.makeRequestContext(localVarPath, "POST" /* POST */); + requestContext.setHeaderParam("Accept", "application/json, */*;q=0.8"); + requestContext.setHeaderParam("User-Agent", "ThoughtSpot-Client/typescript/2.20.0"); + requestContext.setHeaderParam("X-ThoughtSpot-Client", "ThoughtSpot-ts-client/2.20.0"); + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json" + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize(updateWebhookConfigurationRequest, "UpdateWebhookConfigurationRequest", ""), + contentType + ); + requestContext.setBody(serializedBody); + let authMethod; + authMethod = _config.authMethods["bearerAuth"]; + if (authMethod == null ? void 0 : authMethod.applySecurityAuthentication) { + yield authMethod == null ? void 0 : authMethod.applySecurityAuthentication(requestContext); + } + const defaultAuth = ((_a = _options == null ? void 0 : _options.authMethods) == null ? void 0 : _a.default) || ((_c = (_b = this.configuration) == null ? void 0 : _b.authMethods) == null ? void 0 : _c.default); + if (defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication) { + yield defaultAuth == null ? void 0 : defaultAuth.applySecurityAuthentication(requestContext); + } + return requestContext; + }); + } +}; +var WebhooksApiResponseProcessor = class { /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchCommits + * @params response Response returned by the server for a request to createWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - searchCommits(response) { + createWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookResponse", "" ); return body; @@ -37552,7 +42348,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookResponse", "" ); return body; @@ -37564,16 +42360,16 @@ var VersionControlApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to searchConfig + * @params response Response returned by the server for a request to deleteWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - searchConfig(response) { + deleteWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookDeleteResponse", "" ); return body; @@ -37613,7 +42409,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "WebhookDeleteResponse", "" ); return body; @@ -37625,16 +42421,16 @@ var VersionControlApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to updateConfig + * @params response Response returned by the server for a request to searchWebhookConfigurations * @throws ApiException if the response code was not in [200, 299] */ - updateConfig(response) { + searchWebhookConfigurations(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); if (isCodeInRange("200", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "WebhookSearchResponse", "" ); return body; @@ -37674,7 +42470,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "RepoConfigObject", + "WebhookSearchResponse", "" ); return body; @@ -37686,19 +42482,14 @@ var VersionControlApiResponseProcessor = class { * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects * - * @params response Response returned by the server for a request to validateMerge + * @params response Response returned by the server for a request to updateWebhookConfiguration * @throws ApiException if the response code was not in [200, 299] */ - validateMerge(response) { + updateWebhookConfiguration(response) { return __async(this, null, function* () { const contentType = ObjectSerializer.normalizeMediaType(response.headers["content-type"]); - if (isCodeInRange("200", response.httpStatusCode)) { - const body = ObjectSerializer.deserialize( - ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", - "" - ); - return body; + if (isCodeInRange("204", response.httpStatusCode)) { + return; } if (isCodeInRange("400", response.httpStatusCode)) { const body = ObjectSerializer.deserialize( @@ -37735,7 +42526,7 @@ var VersionControlApiResponseProcessor = class { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { const body = ObjectSerializer.deserialize( ObjectSerializer.parse(yield response.body.text(), contentType), - "Array", + "void", "" ); return body; @@ -37752,6 +42543,24 @@ var ObservableAIApi = class { this.requestFactory = requestFactory || new AIApiRequestFactory(configuration); this.responseProcessor = responseProcessor || new AIApiResponseProcessor(); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const requestContextPromise = this.requestFactory.createAgentConversation(createAgentConversationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createAgentConversation(rsp))); + })); + } /** * 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 @@ -37770,6 +42579,60 @@ var ObservableAIApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createConversation(rsp))); })); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getDataSourceSuggestions(rsp))); + })); + } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.getNLInstructions(getNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNLInstructions(rsp))); + })); + } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getRelevantQuestions(getRelevantQuestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getRelevantQuestions(rsp))); + })); + } /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -37788,6 +42651,43 @@ var ObservableAIApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.queryGetDecomposedQuery(rsp))); })); } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessage(rsp))); + })); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessageStreaming(rsp))); + })); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -37807,6 +42707,24 @@ var ObservableAIApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendMessage(rsp))); })); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.setNLInstructions(setNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.setNLInstructions(rsp))); + })); + } /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -37867,7 +42785,7 @@ var ObservableAuthenticationApi = class { })); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { @@ -38017,7 +42935,7 @@ var ObservableConnectionConfigurationsApi = class { })); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -38053,7 +42971,7 @@ var ObservableConnectionConfigurationsApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -38205,7 +43123,7 @@ var ObservableConnectionsApi = class { })); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -38457,13 +43375,13 @@ var ObservableDBTApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); let middlewarePreObservable = from(requestContextPromise); for (let middleware of this.configuration.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); @@ -38608,7 +43526,7 @@ var ObservableEmailCustomizationApi = class { this.responseProcessor = responseProcessor || new EmailCustomizationApiResponseProcessor(); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -38680,7 +43598,7 @@ var ObservableEmailCustomizationApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -38863,7 +43781,7 @@ var ObservableMetadataApi = class { })); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { @@ -39025,7 +43943,7 @@ var ObservableMetadataApi = class { })); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -39061,7 +43979,7 @@ var ObservableMetadataApi = class { })); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -39220,7 +44138,7 @@ var ObservableReportsApi = class { })); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -39555,6 +44473,24 @@ var ObservableSystemApi = class { this.requestFactory = requestFactory || new SystemApiRequestFactory(configuration); this.responseProcessor = responseProcessor || new SystemApiResponseProcessor(); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.configureCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -39606,6 +44542,24 @@ var ObservableSystemApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getSystemOverrideInfo(rsp))); })); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -39837,6 +44791,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.commitBranch(rsp))); })); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.configureCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -39874,7 +44846,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { @@ -39891,6 +44863,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.copyObject(rsp))); })); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const requestContextPromise = this.requestFactory.createAgentConversation(createAgentConversationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createAgentConversation(rsp))); + })); + } /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -39946,7 +44936,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -40000,7 +44990,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -40126,7 +45116,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -40143,6 +45133,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createVariable(rsp))); })); } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createWebhookConfiguration(rsp))); + })); + } /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -40192,13 +45200,13 @@ var ObservableThoughtSpotRestApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); let middlewarePreObservable = from(requestContextPromise); for (let middleware of this.configuration.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); @@ -40535,7 +45543,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -40552,6 +45560,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteVariable(rsp))); })); } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteWebhookConfigurations(rsp))); + })); + } /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -40607,7 +45633,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -40911,7 +45937,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { @@ -40928,6 +45954,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getCustomAccessToken(rsp))); })); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getDataSourceSuggestions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest @@ -40946,6 +45990,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getFullAccessToken(rsp))); })); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.getNLInstructions(getNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNLInstructions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest @@ -40964,6 +46026,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getObjectAccessToken(rsp))); })); } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const requestContextPromise = this.requestFactory.getRelevantQuestions(getRelevantQuestionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getRelevantQuestions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -41123,7 +46203,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -41267,6 +46347,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchCommits(rsp))); })); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const requestContextPromise = this.requestFactory.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchCommunicationChannelPreferences(rsp))); + })); + } /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -41484,7 +46582,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -41501,6 +46599,61 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchVariables(rsp))); })); } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchWebhookConfigurations(rsp))); + })); + } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessage(rsp))); + })); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const requestContextPromise = this.requestFactory.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendAgentMessageStreaming(rsp))); + })); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -41520,6 +46673,24 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.sendMessage(rsp))); })); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const requestContextPromise = this.requestFactory.setNLInstructions(setNLInstructionsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.setNLInstructions(rsp))); + })); + } /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -41575,7 +46746,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -41684,7 +46855,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -41703,7 +46874,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -41769,7 +46940,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -41955,7 +47126,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -41974,7 +47145,7 @@ var ObservableThoughtSpotRestApi = class { })); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -41991,6 +47162,25 @@ var ObservableThoughtSpotRestApi = class { return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.updateVariableValues(rsp))); })); } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.updateWebhookConfiguration(rsp))); + })); + } /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -42240,7 +47430,7 @@ var ObservableVariableApi = class { this.responseProcessor = responseProcessor || new VariableApiResponseProcessor(); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -42258,7 +47448,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -42276,7 +47466,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -42294,7 +47484,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -42313,7 +47503,7 @@ var ObservableVariableApi = class { })); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -42501,12 +47691,100 @@ var ObservableVersionControlApi = class { })); } }; +var ObservableWebhooksApi = class { + constructor(configuration, requestFactory, responseProcessor) { + this.configuration = configuration; + this.requestFactory = requestFactory || new WebhooksApiRequestFactory(configuration); + this.responseProcessor = responseProcessor || new WebhooksApiResponseProcessor(); + } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createWebhookConfiguration(rsp))); + })); + } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteWebhookConfigurations(rsp))); + })); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const requestContextPromise = this.requestFactory.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.searchWebhookConfigurations(rsp))); + })); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const requestContextPromise = this.requestFactory.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx))); + } + return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).pipe(mergeMap((response) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.updateWebhookConfiguration(rsp))); + })); + } +}; // types/PromiseAPI.ts var PromiseAIApi = class { constructor(configuration, requestFactory, responseProcessor) { this.api = new ObservableAIApi(configuration, requestFactory, responseProcessor); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const result = this.api.createAgentConversation(createAgentConversationRequest, _options); + return result.toPromise(); + } /** * 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 @@ -42515,6 +47793,30 @@ var PromiseAIApi = class { const result = this.api.createConversation(createConversationRequest, _options); return result.toPromise(); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const result = this.api.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + return result.toPromise(); + } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const result = this.api.getNLInstructions(getNLInstructionsRequest, _options); + return result.toPromise(); + } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const result = this.api.getRelevantQuestions(getRelevantQuestionsRequest, _options); + return result.toPromise(); + } /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -42523,6 +47825,23 @@ var PromiseAIApi = class { const result = this.api.queryGetDecomposedQuery(queryGetDecomposedQueryRequest, _options); return result.toPromise(); } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const result = this.api.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + return result.toPromise(); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const result = this.api.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + return result.toPromise(); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -42532,6 +47851,14 @@ var PromiseAIApi = class { const result = this.api.sendMessage(conversationIdentifier, sendMessageRequest, _options); return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const result = this.api.setNLInstructions(setNLInstructionsRequest, _options); + return result.toPromise(); + } /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -42560,7 +47887,7 @@ var PromiseAuthenticationApi = class { return result.toPromise(); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { @@ -42628,7 +47955,7 @@ var PromiseConnectionConfigurationsApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -42644,7 +47971,7 @@ var PromiseConnectionConfigurationsApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -42714,7 +48041,7 @@ var PromiseConnectionsApi = class { return result.toPromise(); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -42840,13 +48167,13 @@ var PromiseDBTApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); return result.toPromise(); } /** @@ -42917,7 +48244,7 @@ var PromiseEmailCustomizationApi = class { this.api = new ObservableEmailCustomizationApi(configuration, requestFactory, responseProcessor); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -42949,7 +48276,7 @@ var PromiseEmailCustomizationApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -43036,7 +48363,7 @@ var PromiseMetadataApi = class { return result.toPromise(); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { @@ -43108,7 +48435,7 @@ var PromiseMetadataApi = class { return result.toPromise(); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -43124,7 +48451,7 @@ var PromiseMetadataApi = class { return result.toPromise(); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -43199,7 +48526,7 @@ var PromiseReportsApi = class { return result.toPromise(); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -43356,6 +48683,14 @@ var PromiseSystemApi = class { constructor(configuration, requestFactory, responseProcessor) { this.api = new ObservableSystemApi(configuration, requestFactory, responseProcessor); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const result = this.api.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -43377,6 +48712,14 @@ var PromiseSystemApi = class { const result = this.api.getSystemOverrideInfo(_options); return result.toPromise(); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const result = this.api.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -43484,6 +48827,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.commitBranch(commitBranchRequest, _options); return result.toPromise(); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options) { + const result = this.api.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -43501,13 +48852,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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. * @param copyObjectRequest */ copyObject(copyObjectRequest, _options) { const result = this.api.copyObject(copyObjectRequest, _options); return result.toPromise(); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + createAgentConversation(createAgentConversationRequest, _options) { + const result = this.api.createAgentConversation(createAgentConversationRequest, _options); + return result.toPromise(); + } /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -43533,7 +48892,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ createConnectionConfiguration(createConnectionConfigurationRequest, _options) { @@ -43557,7 +48916,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ createEmailCustomization(createEmailCustomizationRequest, _options) { @@ -43613,13 +48972,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { const result = this.api.createVariable(createVariableRequest, _options); return result.toPromise(); } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const result = this.api.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + return result.toPromise(); + } /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -43649,13 +49016,13 @@ var PromiseThoughtSpotRestApi = class { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options) { - const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options) { + const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); return result.toPromise(); } /** @@ -43802,13 +49169,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { const result = this.api.deleteVariable(identifier, _options); return result.toPromise(); } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const result = this.api.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + return result.toPromise(); + } /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -43834,7 +49209,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ exportLiveboardReport(exportLiveboardReportRequest, _options) { @@ -43968,13 +49343,21 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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. * @param getCustomAccessTokenRequest */ getCustomAccessToken(getCustomAccessTokenRequest, _options) { const result = this.api.getCustomAccessToken(getCustomAccessTokenRequest, _options); return result.toPromise(); } + /** + * 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 + */ + getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options) { + const result = this.api.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest @@ -43983,6 +49366,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.getFullAccessToken(getFullAccessTokenRequest, _options); return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + getNLInstructions(getNLInstructionsRequest, _options) { + const result = this.api.getNLInstructions(getNLInstructionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest @@ -43991,6 +49382,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.getObjectAccessToken(getObjectAccessTokenRequest, _options); return result.toPromise(); } + /** + * 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 + */ + getRelevantQuestions(getRelevantQuestionsRequest, _options) { + const result = this.api.getRelevantQuestions(getRelevantQuestionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -44060,7 +49459,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ parameterizeMetadata(parameterizeMetadataRequest, _options) { @@ -44124,6 +49523,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.searchCommits(searchCommitsRequest, _options); return result.toPromise(); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options) { + const result = this.api.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -44221,13 +49628,38 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { const result = this.api.searchVariables(searchVariablesRequest, _options); return result.toPromise(); } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const result = this.api.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** + * 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) + * @param sendAgentMessageRequest + */ + sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options) { + const result = this.api.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + return result.toPromise(); + } + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options) { + const result = this.api.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + return result.toPromise(); + } /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -44237,6 +49669,14 @@ var PromiseThoughtSpotRestApi = class { const result = this.api.sendMessage(conversationIdentifier, sendMessageRequest, _options); return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + setNLInstructions(setNLInstructionsRequest, _options) { + const result = this.api.setNLInstructions(setNLInstructionsRequest, _options); + return result.toPromise(); + } /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -44262,7 +49702,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ unparameterizeMetadata(unparameterizeMetadataRequest, _options) { @@ -44311,7 +49751,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -44320,7 +49760,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -44356,7 +49796,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ updateEmailCustomization(updateEmailCustomizationRequest, _options) { @@ -44442,7 +49882,7 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -44451,13 +49891,22 @@ var PromiseThoughtSpotRestApi = class { return result.toPromise(); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { const result = this.api.updateVariableValues(updateVariableValuesRequest, _options); return result.toPromise(); } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const result = this.api.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + return result.toPromise(); + } /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -44573,7 +50022,7 @@ var PromiseVariableApi = class { this.api = new ObservableVariableApi(configuration, requestFactory, responseProcessor); } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ createVariable(createVariableRequest, _options) { @@ -44581,7 +50030,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable */ deleteVariable(identifier, _options) { @@ -44589,7 +50038,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param searchVariablesRequest */ searchVariables(searchVariablesRequest, _options) { @@ -44597,7 +50046,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -44606,7 +50055,7 @@ var PromiseVariableApi = class { return result.toPromise(); } /** - * 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 * @param updateVariableValuesRequest */ updateVariableValues(updateVariableValuesRequest, _options) { @@ -44692,15 +50141,78 @@ var PromiseVersionControlApi = class { return result.toPromise(); } }; +var PromiseWebhooksApi = class { + constructor(configuration, requestFactory, responseProcessor) { + this.api = new ObservableWebhooksApi(configuration, requestFactory, responseProcessor); + } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + createWebhookConfiguration(createWebhookConfigurationRequest, _options) { + const result = this.api.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + return result.toPromise(); + } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options) { + const result = this.api.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options) { + const result = this.api.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options) { + const result = this.api.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + return result.toPromise(); + } +}; // utils/config.ts -var createBearerAuthenticationConfig = (thoughtSpotHost, paramOrTokenProvider) => { +var createAdditionalHeadersMiddleware = (additionalHeaders) => { + return { + /** + * Pre-request middleware to add custom headers to every API call + * @param requestContext - The request context to modify + */ + pre: (requestContext) => { + Object.entries(additionalHeaders).forEach(([headerName, headerValue]) => { + requestContext.setHeaderParam(headerName, headerValue); + }); + return Promise.resolve(requestContext); + }, + /** + * Post-request middleware for response processing + * @param responseContext - The response context + */ + post: (responseContext) => Promise.resolve(responseContext) + }; +}; +var createBearerAuthenticationConfig = (thoughtSpotHost, paramOrTokenProvider, options) => { const serverConfig = new ServerConfiguration( thoughtSpotHost, {} ); + const additionalHeaders = options == null ? void 0 : options.additionalHeaders; + let middleware = []; + if (additionalHeaders && Object.keys(additionalHeaders).length > 0) { + middleware.push(createAdditionalHeadersMiddleware(additionalHeaders)); + } const config = createConfiguration({ - baseServer: serverConfig + baseServer: serverConfig, + promiseMiddleware: middleware }); const authApiClient = new PromiseAuthenticationApi(config); let configTokenProvider; @@ -44725,19 +50237,27 @@ var createBearerAuthenticationConfig = (thoughtSpotHost, paramOrTokenProvider) = }; const globalConfig = createConfiguration({ authMethods: authConfig, - baseServer: serverConfig + baseServer: serverConfig, + promiseMiddleware: middleware }); return globalConfig; }; -var createBasicConfig = (thoughtSpotHost) => { +var createBasicConfig = (thoughtSpotHost, options) => { const thoughtSpotServer = new ServerConfiguration(thoughtSpotHost, {}); + const additionalHeaders = options == null ? void 0 : options.additionalHeaders; + let middleware = []; + if (additionalHeaders && Object.keys(additionalHeaders).length > 0) { + middleware.push(createAdditionalHeadersMiddleware(additionalHeaders)); + } const basicClientConfig = createConfiguration({ - baseServer: thoughtSpotServer + baseServer: thoughtSpotServer, + promiseMiddleware: middleware }); return basicClientConfig; }; export { PromiseAIApi as AIApi, + AIContext, APIKey, APIKeyInput, AccessToken, @@ -44748,7 +50268,9 @@ export { ActionDetailsInput, ActionDetailsInputCreate, ActivateUserRequest, + AgentConversation, AnswerContent, + AnswerContextInput, AnswerDataResponse, ApiException, AssignChangeAuthorRequest, @@ -44783,14 +50305,21 @@ export { CommitHistoryResponse, CommitResponse, CommiterType, + CommunicationChannelPreferencesResponse, + ConfigureCommunicationChannelPreferencesRequest, ConnectionConfigurationResponse, ConnectionConfigurationSearchRequest, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, ConnectionInput, PromiseConnectionsApi as ConnectionsApi, + ContextPayloadV2Input, Conversation, + ConversationSettingsInput, ConvertWorksheetToModelRequest, CopyObjectRequest, + CreateAgentConversationRequest, + CreateAgentConversationRequestConversationSettings, + CreateAgentConversationRequestMetadataContext, CreateCalendarRequest, CreateCalendarRequestTableReference, CreateConfigRequest, @@ -44815,6 +50344,9 @@ export { CreateUserGroupRequest, CreateUserRequest, CreateVariableRequest, + CreateWebhookConfigurationRequest, + CreateWebhookConfigurationRequestAuthentication, + CreateWebhookConfigurationRequestSignatureVerification, CronExpression, CronExpressionInput, PromiseCustomActionApi as CustomActionApi, @@ -44822,6 +50354,8 @@ export { PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, + DataSource, + DataSourceContextInput, DataWarehouseObjectInput, DataWarehouseObjects, Database, @@ -44837,13 +50371,22 @@ export { DeleteMetadataRequest, DeleteMetadataTypeInput, DeleteOrgEmailCustomizationRequest, + DeleteWebhookConfigurationsRequest, DeployCommitRequest, DeployResponse, PromiseEmailCustomizationApi as EmailCustomizationApi, + EntityHeader, ErrorResponse, + EurekaDataSourceSuggestionResponse, EurekaDecomposeQueryResponse, + EurekaGetNLInstructionsResponse, + EurekaGetRelevantQuestionsResponse, EurekaLLMDecomposeQueryResponse, EurekaLLMSuggestedQuery, + EurekaRelevantQuestion, + EurekaSetNLInstructionsResponse, + EventChannelConfig, + EventChannelConfigInput, ExcludeMetadataListItemInput, ExportAnswerReportRequest, ExportAnswerReportRequestRegionalSettings, @@ -44877,9 +50420,14 @@ export { GenericInfo, GetAsyncImportStatusResponse, GetCustomAccessTokenRequest, + GetDataSourceSuggestionsRequest, GetFullAccessTokenRequest, GetFullAccessTokenRequestUserParameters, + GetNLInstructionsRequest, GetObjectAccessTokenRequest, + GetRelevantQuestionsRequest, + GetRelevantQuestionsRequestAiContext, + GetRelevantQuestionsRequestMetadataContext, GetTokenResponse, GroupObject, PromiseGroupsApi as GroupsApi, @@ -44898,12 +50446,12 @@ export { ImportUsersRequest, ImportUsersResponse, InputEurekaNLSRequest, - InputVariableValue, IsomorphicFetchHttpLibrary, JWTMetadataObject, JWTParameter, JWTUserOptions, JWTUserOptionsFull, + LBContextInput, LiveboardContent, LiveboardDataResponse, LiveboardOptions, @@ -44913,6 +50461,7 @@ export { LoginRequest, PromiseMetadataApi as MetadataApi, MetadataAssociationItem, + MetadataContext, MetadataInput, MetadataListItemInput, MetadataObject, @@ -44920,9 +50469,15 @@ export { MetadataSearchResponse, MetadataSearchSortOptions, ModelTableList, + NLInstructionsInfo, + NLInstructionsInfoInput, ObjectIDAndName, Org, + OrgChannelConfigInput, + OrgChannelConfigResponse, + OrgDetails, OrgInfo, + OrgPreferenceSearchCriteriaInput, OrgResponse, OrgType, PromiseOrgsApi as OrgsApi, @@ -44991,6 +50546,7 @@ export { SearchCalendarsRequest, SearchCalendarsRequestSortOptions, SearchCommitsRequest, + SearchCommunicationChannelPreferencesRequest, SearchConfigRequest, SearchConnectionRequest, SearchConnectionRequestSortOptions, @@ -45015,10 +50571,16 @@ export { SearchUsersRequest, SearchUsersRequestSortOptions, SearchVariablesRequest, + SearchWebhookConfigurationsRequest, + SearchWebhookConfigurationsRequestSortOptions, PromiseSecurityApi as SecurityApi, SelfDecodingBody, + SendAgentMessageRequest, + SendAgentMessageResponse, + SendAgentMessageStreamingRequest, SendMessageRequest, ServerConfiguration, + SetNLInstructionsRequest, ShareMetadataRequest, ShareMetadataTypeInput, SharePermissionsInput, @@ -45074,6 +50636,7 @@ export { UpdateUserRequest, UpdateVariableRequest, UpdateVariableValuesRequest, + UpdateWebhookConfigurationRequest, User, UserGroup, UserGroupResponse, @@ -45084,12 +50647,34 @@ export { PromiseUsersApi as UsersApi, ValidateMergeRequest, ValidateTokenRequest, + ValueScopeInput, Variable, PromiseVariableApi as VariableApi, VariableDetailInput, + VariableUpdateAssignmentInput, + VariableUpdateScopeInput, VariableValue, - VariableValueInput, + VariableValues, PromiseVersionControlApi as VersionControlApi, + WebhookAuthApiKey, + WebhookAuthApiKeyInput, + WebhookAuthBasicAuth, + WebhookAuthBasicAuthInput, + WebhookAuthOAuth2, + WebhookAuthOAuth2Input, + WebhookAuthentication, + WebhookAuthenticationInput, + WebhookDeleteFailure, + WebhookDeleteResponse, + WebhookOrg, + WebhookPagination, + WebhookResponse, + WebhookSearchResponse, + WebhookSignatureVerification, + WebhookSignatureVerificationInput, + WebhookSortOptionsInput, + WebhookUser, + PromiseWebhooksApi as WebhooksApi, configureAuthMethods, createBasicConfig, createBearerAuthenticationConfig, diff --git a/sdks/typescript/index.ts b/sdks/typescript/index.ts index 4a6c0210b..27a36f985 100644 --- a/sdks/typescript/index.ts +++ b/sdks/typescript/index.ts @@ -8,6 +8,6 @@ export * from "./servers"; export { RequiredError } from "./apis/baseapi"; export { PromiseMiddleware as Middleware } from './middleware'; -export { PromiseAIApi as AIApi, PromiseAuthenticationApi as AuthenticationApi, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, PromiseConnectionsApi as ConnectionsApi, PromiseCustomActionApi as CustomActionApi, PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, PromiseEmailCustomizationApi as EmailCustomizationApi, PromiseGroupsApi as GroupsApi, PromiseLogApi as LogApi, PromiseMetadataApi as MetadataApi, PromiseOrgsApi as OrgsApi, PromiseReportsApi as ReportsApi, PromiseRolesApi as RolesApi, PromiseSchedulesApi as SchedulesApi, PromiseSecurityApi as SecurityApi, PromiseSystemApi as SystemApi, PromiseTagsApi as TagsApi, PromiseThoughtSpotRestApi as ThoughtSpotRestApi, PromiseUsersApi as UsersApi, PromiseVariableApi as VariableApi, PromiseVersionControlApi as VersionControlApi } from './types/PromiseAPI'; +export { PromiseAIApi as AIApi, PromiseAuthenticationApi as AuthenticationApi, PromiseConnectionConfigurationsApi as ConnectionConfigurationsApi, PromiseConnectionsApi as ConnectionsApi, PromiseCustomActionApi as CustomActionApi, PromiseCustomCalendarsApi as CustomCalendarsApi, PromiseDBTApi as DBTApi, PromiseDataApi as DataApi, PromiseEmailCustomizationApi as EmailCustomizationApi, PromiseGroupsApi as GroupsApi, PromiseLogApi as LogApi, PromiseMetadataApi as MetadataApi, PromiseOrgsApi as OrgsApi, PromiseReportsApi as ReportsApi, PromiseRolesApi as RolesApi, PromiseSchedulesApi as SchedulesApi, PromiseSecurityApi as SecurityApi, PromiseSystemApi as SystemApi, PromiseTagsApi as TagsApi, PromiseThoughtSpotRestApi as ThoughtSpotRestApi, PromiseUsersApi as UsersApi, PromiseVariableApi as VariableApi, PromiseVersionControlApi as VersionControlApi, PromiseWebhooksApi as WebhooksApi } from './types/PromiseAPI'; export { createBearerAuthenticationConfig, createBasicConfig } from "./utils/config"; \ No newline at end of file diff --git a/sdks/typescript/models/AIContext.ts b/sdks/typescript/models/AIContext.ts new file mode 100644 index 000000000..4fb445085 --- /dev/null +++ b/sdks/typescript/models/AIContext.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class AIContext { + /** + * User specific text instructions sent to AI system for processing the query. + */ + 'instructions'?: Array | null; + /** + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. + */ + 'content'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "content", + "baseName": "content", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return AIContext.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/AgentConversation.ts b/sdks/typescript/models/AgentConversation.ts new file mode 100644 index 000000000..b85b19114 --- /dev/null +++ b/sdks/typescript/models/AgentConversation.ts @@ -0,0 +1,38 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class AgentConversation { + /** + * Unique identifier of the conversation. + */ + 'conversation_id': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "conversation_id", + "baseName": "conversation_id", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return AgentConversation.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/DbtGenerateSyncTmlRequest.ts b/sdks/typescript/models/AnswerContextInput.ts similarity index 56% rename from sdks/typescript/models/DbtGenerateSyncTmlRequest.ts rename to sdks/typescript/models/AnswerContextInput.ts index 90548e536..1083e0821 100644 --- a/sdks/typescript/models/DbtGenerateSyncTmlRequest.ts +++ b/sdks/typescript/models/AnswerContextInput.ts @@ -12,34 +12,34 @@ import { HttpFile } from '../http/http'; -export class DbtGenerateSyncTmlRequest { +export class AnswerContextInput { /** - * Unique ID of the DBT connection. + * Unique identifier of the answer session. */ - 'dbt_connection_identifier': string; + 'session_identifier': string; /** - * 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’ + * Generation number of the answer. */ - 'file_content'?: HttpFile; + 'generation_number': number; static readonly discriminator: string | undefined = undefined; static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ { - "name": "dbt_connection_identifier", - "baseName": "dbt_connection_identifier", + "name": "session_identifier", + "baseName": "session_identifier", "type": "string", "format": "" }, { - "name": "file_content", - "baseName": "file_content", - "type": "HttpFile", - "format": "binary" + "name": "generation_number", + "baseName": "generation_number", + "type": "number", + "format": "int32" } ]; static getAttributeTypeMap() { - return DbtGenerateSyncTmlRequest.attributeTypeMap; + return AnswerContextInput.attributeTypeMap; } public constructor() { diff --git a/sdks/typescript/models/ColumnSecurityRule.ts b/sdks/typescript/models/ColumnSecurityRule.ts index ad1729bd1..7f641bb63 100644 --- a/sdks/typescript/models/ColumnSecurityRule.ts +++ b/sdks/typescript/models/ColumnSecurityRule.ts @@ -21,7 +21,7 @@ export class ColumnSecurityRule { * Array of groups that have access to this column */ 'groups'?: Array | null; - 'sourceTableDetails'?: ColumnSecurityRuleSourceTable; + 'source_table_details'?: ColumnSecurityRuleSourceTable; static readonly discriminator: string | undefined = undefined; @@ -39,8 +39,8 @@ export class ColumnSecurityRule { "format": "" }, { - "name": "sourceTableDetails", - "baseName": "sourceTableDetails", + "name": "source_table_details", + "baseName": "source_table_details", "type": "ColumnSecurityRuleSourceTable", "format": "" } ]; diff --git a/sdks/typescript/models/ColumnSecurityRuleResponse.ts b/sdks/typescript/models/ColumnSecurityRuleResponse.ts index 838cfef72..a4042156c 100644 --- a/sdks/typescript/models/ColumnSecurityRuleResponse.ts +++ b/sdks/typescript/models/ColumnSecurityRuleResponse.ts @@ -17,34 +17,34 @@ export class ColumnSecurityRuleResponse { /** * GUID of the table for which the column security rules are fetched */ - 'guid'?: string | null; + 'table_guid'?: string | null; /** * Object ID of the table for which the column security rules are fetched */ - 'objId'?: string | null; + 'obj_id'?: string | null; /** * Array containing column security rule objects */ - 'columnSecurityRules'?: Array | null; + 'column_security_rules'?: Array | null; static readonly discriminator: string | undefined = undefined; static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ { - "name": "guid", - "baseName": "guid", + "name": "table_guid", + "baseName": "table_guid", "type": "string", "format": "" }, { - "name": "objId", - "baseName": "objId", + "name": "obj_id", + "baseName": "obj_id", "type": "string", "format": "" }, { - "name": "columnSecurityRules", - "baseName": "columnSecurityRules", + "name": "column_security_rules", + "baseName": "column_security_rules", "type": "Array", "format": "" } ]; diff --git a/sdks/typescript/models/CommunicationChannelPreferencesResponse.ts b/sdks/typescript/models/CommunicationChannelPreferencesResponse.ts new file mode 100644 index 000000000..2e6a67846 --- /dev/null +++ b/sdks/typescript/models/CommunicationChannelPreferencesResponse.ts @@ -0,0 +1,50 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { EventChannelConfig } from '../models/EventChannelConfig'; +import { OrgChannelConfigResponse } from '../models/OrgChannelConfigResponse'; +import { HttpFile } from '../http/http'; + +export class CommunicationChannelPreferencesResponse { + /** + * Cluster-level default configurations. + */ + 'cluster_preferences'?: Array | null; + /** + * Org-specific configurations. + */ + 'org_preferences'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CommunicationChannelPreferencesResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/ConfigureCommunicationChannelPreferencesRequest.ts b/sdks/typescript/models/ConfigureCommunicationChannelPreferencesRequest.ts new file mode 100644 index 000000000..5ffe81a4f --- /dev/null +++ b/sdks/typescript/models/ConfigureCommunicationChannelPreferencesRequest.ts @@ -0,0 +1,50 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { EventChannelConfigInput } from '../models/EventChannelConfigInput'; +import { OrgChannelConfigInput } from '../models/OrgChannelConfigInput'; +import { HttpFile } from '../http/http'; + +export class ConfigureCommunicationChannelPreferencesRequest { + /** + * Cluster-level default configurations. + */ + 'cluster_preferences'?: Array; + /** + * Org-specific configurations. + */ + 'org_preferences'?: Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return ConfigureCommunicationChannelPreferencesRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/ContextPayloadV2Input.ts b/sdks/typescript/models/ContextPayloadV2Input.ts new file mode 100644 index 000000000..0b2767bb3 --- /dev/null +++ b/sdks/typescript/models/ContextPayloadV2Input.ts @@ -0,0 +1,65 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { AnswerContextInput } from '../models/AnswerContextInput'; +import { DataSourceContextInput } from '../models/DataSourceContextInput'; +import { LBContextInput } from '../models/LBContextInput'; +import { HttpFile } from '../http/http'; + +export class ContextPayloadV2Input { + /** + * Type of the context. + */ + 'type'?: ContextPayloadV2InputTypeEnum | null; + 'answer_context'?: AnswerContextInput; + 'liveboard_context'?: LBContextInput; + 'data_source_context'?: DataSourceContextInput; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "type", + "baseName": "type", + "type": "ContextPayloadV2InputTypeEnum", + "format": "" + }, + { + "name": "answer_context", + "baseName": "answer_context", + "type": "AnswerContextInput", + "format": "" + }, + { + "name": "liveboard_context", + "baseName": "liveboard_context", + "type": "LBContextInput", + "format": "" + }, + { + "name": "data_source_context", + "baseName": "data_source_context", + "type": "DataSourceContextInput", + "format": "" + } ]; + + static getAttributeTypeMap() { + return ContextPayloadV2Input.attributeTypeMap; + } + + public constructor() { + } +} + + +export type ContextPayloadV2InputTypeEnum = "answer" | "liveboard" | "data_source" ; + diff --git a/sdks/typescript/models/ConversationSettingsInput.ts b/sdks/typescript/models/ConversationSettingsInput.ts new file mode 100644 index 000000000..f31b16d3d --- /dev/null +++ b/sdks/typescript/models/ConversationSettingsInput.ts @@ -0,0 +1,58 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class ConversationSettingsInput { + /** + * Enable contextual change analysis. + */ + 'enable_contextual_change_analysis'?: boolean | null; + /** + * Enable natural language to answer generation. + */ + 'enable_natural_language_answer_generation'?: boolean | null; + /** + * Enable reasoning. + */ + 'enable_reasoning'?: boolean | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "enable_contextual_change_analysis", + "baseName": "enable_contextual_change_analysis", + "type": "boolean", + "format": "" + }, + { + "name": "enable_natural_language_answer_generation", + "baseName": "enable_natural_language_answer_generation", + "type": "boolean", + "format": "" + }, + { + "name": "enable_reasoning", + "baseName": "enable_reasoning", + "type": "boolean", + "format": "" + } ]; + + static getAttributeTypeMap() { + return ConversationSettingsInput.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/CreateAgentConversationRequest.ts b/sdks/typescript/models/CreateAgentConversationRequest.ts new file mode 100644 index 000000000..a1e7ab9a4 --- /dev/null +++ b/sdks/typescript/models/CreateAgentConversationRequest.ts @@ -0,0 +1,44 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { CreateAgentConversationRequestConversationSettings } from '../models/CreateAgentConversationRequestConversationSettings'; +import { CreateAgentConversationRequestMetadataContext } from '../models/CreateAgentConversationRequestMetadataContext'; +import { HttpFile } from '../http/http'; + +export class CreateAgentConversationRequest { + 'metadata_context': CreateAgentConversationRequestMetadataContext; + 'conversation_settings': CreateAgentConversationRequestConversationSettings; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "metadata_context", + "baseName": "metadata_context", + "type": "CreateAgentConversationRequestMetadataContext", + "format": "" + }, + { + "name": "conversation_settings", + "baseName": "conversation_settings", + "type": "CreateAgentConversationRequestConversationSettings", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CreateAgentConversationRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/CreateAgentConversationRequestConversationSettings.ts b/sdks/typescript/models/CreateAgentConversationRequestConversationSettings.ts new file mode 100644 index 000000000..86d339b49 --- /dev/null +++ b/sdks/typescript/models/CreateAgentConversationRequestConversationSettings.ts @@ -0,0 +1,61 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* Conversation settings. +*/ +export class CreateAgentConversationRequestConversationSettings { + /** + * Enable contextual change analysis. + */ + 'enable_contextual_change_analysis'?: boolean | null; + /** + * Enable natural language to answer generation. + */ + 'enable_natural_language_answer_generation'?: boolean | null; + /** + * Enable reasoning. + */ + 'enable_reasoning'?: boolean | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "enable_contextual_change_analysis", + "baseName": "enable_contextual_change_analysis", + "type": "boolean", + "format": "" + }, + { + "name": "enable_natural_language_answer_generation", + "baseName": "enable_natural_language_answer_generation", + "type": "boolean", + "format": "" + }, + { + "name": "enable_reasoning", + "baseName": "enable_reasoning", + "type": "boolean", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CreateAgentConversationRequestConversationSettings.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/CreateAgentConversationRequestMetadataContext.ts b/sdks/typescript/models/CreateAgentConversationRequestMetadataContext.ts new file mode 100644 index 000000000..c4130b25d --- /dev/null +++ b/sdks/typescript/models/CreateAgentConversationRequestMetadataContext.ts @@ -0,0 +1,68 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { AnswerContextInput } from '../models/AnswerContextInput'; +import { DataSourceContextInput } from '../models/DataSourceContextInput'; +import { LBContextInput } from '../models/LBContextInput'; +import { HttpFile } from '../http/http'; + +/** +* Context for the conversation. +*/ +export class CreateAgentConversationRequestMetadataContext { + /** + * Type of the context. + */ + 'type'?: CreateAgentConversationRequestMetadataContextTypeEnum | null; + 'answer_context'?: AnswerContextInput; + 'liveboard_context'?: LBContextInput; + 'data_source_context'?: DataSourceContextInput; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "type", + "baseName": "type", + "type": "CreateAgentConversationRequestMetadataContextTypeEnum", + "format": "" + }, + { + "name": "answer_context", + "baseName": "answer_context", + "type": "AnswerContextInput", + "format": "" + }, + { + "name": "liveboard_context", + "baseName": "liveboard_context", + "type": "LBContextInput", + "format": "" + }, + { + "name": "data_source_context", + "baseName": "data_source_context", + "type": "DataSourceContextInput", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CreateAgentConversationRequestMetadataContext.attributeTypeMap; + } + + public constructor() { + } +} + + +export type CreateAgentConversationRequestMetadataContextTypeEnum = "answer" | "liveboard" | "data_source" ; + diff --git a/sdks/typescript/models/CreateConnectionConfigurationRequest.ts b/sdks/typescript/models/CreateConnectionConfigurationRequest.ts index a13e444a1..11410add0 100644 --- a/sdks/typescript/models/CreateConnectionConfigurationRequest.ts +++ b/sdks/typescript/models/CreateConnectionConfigurationRequest.ts @@ -107,7 +107,7 @@ export class CreateConnectionConfigurationRequest { } -export type CreateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "KEY_PAIR" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_WITH_SERVICE_PRINCIPAL" ; +export type CreateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "KEY_PAIR" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "OAUTH_CLIENT_CREDENTIALS" ; export type CreateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES" ; export type CreateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS" ; diff --git a/sdks/typescript/models/CreateEmailCustomizationRequestTemplateProperties.ts b/sdks/typescript/models/CreateEmailCustomizationRequestTemplateProperties.ts index 6bc9cac39..55530989a 100644 --- a/sdks/typescript/models/CreateEmailCustomizationRequestTemplateProperties.ts +++ b/sdks/typescript/models/CreateEmailCustomizationRequestTemplateProperties.ts @@ -108,6 +108,14 @@ export class CreateEmailCustomizationRequestTemplateProperties { * Whether to hide modify alert */ 'hide_modify_alert'?: boolean | null; + /** + * Company privacy policy URL (HTTP/HTTPS only) + */ + 'company_privacy_policy_url'?: string | null; + /** + * Company website URL (HTTP/HTTPS only) + */ + 'company_website_url'?: string | null; static readonly discriminator: string | undefined = undefined; @@ -249,6 +257,18 @@ export class CreateEmailCustomizationRequestTemplateProperties { "baseName": "hide_modify_alert", "type": "boolean", "format": "" + }, + { + "name": "company_privacy_policy_url", + "baseName": "company_privacy_policy_url", + "type": "string", + "format": "" + }, + { + "name": "company_website_url", + "baseName": "company_website_url", + "type": "string", + "format": "" } ]; static getAttributeTypeMap() { diff --git a/sdks/typescript/models/CreateRoleRequest.ts b/sdks/typescript/models/CreateRoleRequest.ts index f16d24717..a59568ee9 100644 --- a/sdks/typescript/models/CreateRoleRequest.ts +++ b/sdks/typescript/models/CreateRoleRequest.ts @@ -67,5 +67,5 @@ export class CreateRoleRequest { } -export type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" ; +export type CreateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MANAGE_VARIABLES" | "CAN_MODIFY_FOLDERS" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; diff --git a/sdks/typescript/models/CreateUserGroupRequest.ts b/sdks/typescript/models/CreateUserGroupRequest.ts index b962d30b3..ca609d6a6 100644 --- a/sdks/typescript/models/CreateUserGroupRequest.ts +++ b/sdks/typescript/models/CreateUserGroupRequest.ts @@ -127,7 +127,7 @@ export class CreateUserGroupRequest { } -export type CreateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; -export type CreateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" ; +export type CreateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; +export type CreateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP" ; export type CreateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE" ; diff --git a/sdks/typescript/models/CreateVariableRequest.ts b/sdks/typescript/models/CreateVariableRequest.ts index 624f5818e..855c7c6ea 100644 --- a/sdks/typescript/models/CreateVariableRequest.ts +++ b/sdks/typescript/models/CreateVariableRequest.ts @@ -10,7 +10,6 @@ * Do not edit the class manually. */ -import { InputVariableValue } from '../models/InputVariableValue'; import { HttpFile } from '../http/http'; export class CreateVariableRequest { @@ -25,11 +24,11 @@ export class CreateVariableRequest { /** * If the variable contains sensitive values like passwords */ - 'sensitive'?: boolean | null; + 'is_sensitive'?: boolean | null; /** - * Values of variable + * Variable Data Type */ - 'values'?: Array; + 'data_type'?: CreateVariableRequestDataTypeEnum; static readonly discriminator: string | undefined = undefined; @@ -47,15 +46,15 @@ export class CreateVariableRequest { "format": "" }, { - "name": "sensitive", - "baseName": "sensitive", + "name": "is_sensitive", + "baseName": "is_sensitive", "type": "boolean", "format": "" }, { - "name": "values", - "baseName": "values", - "type": "Array", + "name": "data_type", + "baseName": "data_type", + "type": "CreateVariableRequestDataTypeEnum", "format": "" } ]; @@ -68,5 +67,6 @@ export class CreateVariableRequest { } -export type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" ; +export type CreateVariableRequestTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE" ; +export type CreateVariableRequestDataTypeEnum = "VARCHAR" | "INT32" | "INT64" | "DOUBLE" | "DATE" | "DATE_TIME" ; diff --git a/sdks/typescript/models/CreateWebhookConfigurationRequest.ts b/sdks/typescript/models/CreateWebhookConfigurationRequest.ts new file mode 100644 index 000000000..7c973f0c0 --- /dev/null +++ b/sdks/typescript/models/CreateWebhookConfigurationRequest.ts @@ -0,0 +1,97 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { CreateWebhookConfigurationRequestAuthentication } from '../models/CreateWebhookConfigurationRequestAuthentication'; +import { CreateWebhookConfigurationRequestSignatureVerification } from '../models/CreateWebhookConfigurationRequestSignatureVerification'; +import { HttpFile } from '../http/http'; + +export class CreateWebhookConfigurationRequest { + /** + * Name of the webhook configuration. + */ + 'name': string; + /** + * Description of the webhook configuration. + */ + 'description'?: string; + /** + * The webhook endpoint URL. + */ + 'url': string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any; + /** + * List of events to subscribe to. + */ + 'events': Array; + 'authentication'?: CreateWebhookConfigurationRequestAuthentication; + 'signature_verification'?: CreateWebhookConfigurationRequestSignatureVerification; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "CreateWebhookConfigurationRequestAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "CreateWebhookConfigurationRequestSignatureVerification", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CreateWebhookConfigurationRequest.attributeTypeMap; + } + + public constructor() { + } +} + + +export type CreateWebhookConfigurationRequestEventsEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/CreateWebhookConfigurationRequestAuthentication.ts b/sdks/typescript/models/CreateWebhookConfigurationRequestAuthentication.ts new file mode 100644 index 000000000..7602d0c87 --- /dev/null +++ b/sdks/typescript/models/CreateWebhookConfigurationRequestAuthentication.ts @@ -0,0 +1,65 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { WebhookAuthApiKeyInput } from '../models/WebhookAuthApiKeyInput'; +import { WebhookAuthBasicAuthInput } from '../models/WebhookAuthBasicAuthInput'; +import { WebhookAuthOAuth2Input } from '../models/WebhookAuthOAuth2Input'; +import { HttpFile } from '../http/http'; + +/** +* Authorization configuration for the webhook. +*/ +export class CreateWebhookConfigurationRequestAuthentication { + 'API_KEY'?: WebhookAuthApiKeyInput; + 'BASIC_AUTH'?: WebhookAuthBasicAuthInput; + /** + * Bearer token authentication configuration. + */ + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2Input; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKeyInput", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuthInput", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2Input", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CreateWebhookConfigurationRequestAuthentication.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/CreateWebhookConfigurationRequestSignatureVerification.ts b/sdks/typescript/models/CreateWebhookConfigurationRequestSignatureVerification.ts new file mode 100644 index 000000000..80255b2d7 --- /dev/null +++ b/sdks/typescript/models/CreateWebhookConfigurationRequestSignatureVerification.ts @@ -0,0 +1,75 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* Configuration for webhook signature verification. +*/ +export class CreateWebhookConfigurationRequestSignatureVerification { + /** + * Signature verification method type. + */ + 'type': CreateWebhookConfigurationRequestSignatureVerificationTypeEnum; + /** + * HTTP header where the signature is sent. + */ + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "type", + "baseName": "type", + "type": "CreateWebhookConfigurationRequestSignatureVerificationTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return CreateWebhookConfigurationRequestSignatureVerification.attributeTypeMap; + } + + public constructor() { + } +} + + +export type CreateWebhookConfigurationRequestSignatureVerificationTypeEnum = "HMAC_SHA256" ; +export type CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum = "SHA256" ; + diff --git a/sdks/typescript/models/DataSource.ts b/sdks/typescript/models/DataSource.ts new file mode 100644 index 000000000..9b5b27132 --- /dev/null +++ b/sdks/typescript/models/DataSource.ts @@ -0,0 +1,56 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { EntityHeader } from '../models/EntityHeader'; +import { HttpFile } from '../http/http'; + +export class DataSource { + /** + * Confidence score for the data source suggestion. + */ + 'confidence'?: number | null; + 'details'?: EntityHeader; + /** + * LLM reasoning for the data source. + */ + 'reasoning'?: string | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "confidence", + "baseName": "confidence", + "type": "number", + "format": "float" + }, + { + "name": "details", + "baseName": "details", + "type": "EntityHeader", + "format": "" + }, + { + "name": "reasoning", + "baseName": "reasoning", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return DataSource.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/DataSourceContextInput.ts b/sdks/typescript/models/DataSourceContextInput.ts new file mode 100644 index 000000000..d4111e501 --- /dev/null +++ b/sdks/typescript/models/DataSourceContextInput.ts @@ -0,0 +1,38 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class DataSourceContextInput { + /** + * Unique identifier of the data source. + */ + 'guid': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "guid", + "baseName": "guid", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return DataSourceContextInput.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/DbtConnectionRequest.ts b/sdks/typescript/models/DbtConnectionRequest.ts deleted file mode 100644 index 0e06fcf20..000000000 --- a/sdks/typescript/models/DbtConnectionRequest.ts +++ /dev/null @@ -1,131 +0,0 @@ -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { HttpFile } from '../http/http'; - -export class DbtConnectionRequest { - /** - * Name of the connection. - */ - 'connection_name': string; - /** - * Name of the Database. - */ - 'database_name': string; - /** - * Mention type of Import - */ - 'import_type'?: DbtConnectionRequestImportTypeEnum; - /** - * Access token is mandatory when Import_Type is DBT_CLOUD. - */ - 'access_token'?: string; - /** - * DBT URL is mandatory when Import_Type is DBT_CLOUD. - */ - 'dbt_url'?: string; - /** - * Account ID is mandatory when Import_Type is DBT_CLOUD - */ - 'account_id'?: string; - /** - * Project ID is mandatory when Import_Type is DBT_CLOUD - */ - 'project_id'?: string; - /** - * DBT Environment ID\" - */ - 'dbt_env_id'?: string; - /** - * Name of the project - */ - 'project_name'?: string; - /** - * Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \'ZIP_FILE\' - */ - 'file_content'?: HttpFile; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "connection_name", - "baseName": "connection_name", - "type": "string", - "format": "" - }, - { - "name": "database_name", - "baseName": "database_name", - "type": "string", - "format": "" - }, - { - "name": "import_type", - "baseName": "import_type", - "type": "DbtConnectionRequestImportTypeEnum", - "format": "" - }, - { - "name": "access_token", - "baseName": "access_token", - "type": "string", - "format": "" - }, - { - "name": "dbt_url", - "baseName": "dbt_url", - "type": "string", - "format": "" - }, - { - "name": "account_id", - "baseName": "account_id", - "type": "string", - "format": "" - }, - { - "name": "project_id", - "baseName": "project_id", - "type": "string", - "format": "" - }, - { - "name": "dbt_env_id", - "baseName": "dbt_env_id", - "type": "string", - "format": "" - }, - { - "name": "project_name", - "baseName": "project_name", - "type": "string", - "format": "" - }, - { - "name": "file_content", - "baseName": "file_content", - "type": "HttpFile", - "format": "binary" - } ]; - - static getAttributeTypeMap() { - return DbtConnectionRequest.attributeTypeMap; - } - - public constructor() { - } -} - - -export type DbtConnectionRequestImportTypeEnum = "DBT_CLOUD" | "ZIP_FILE" ; - diff --git a/sdks/typescript/models/DbtGenerateTmlRequest.ts b/sdks/typescript/models/DbtGenerateTmlRequest.ts deleted file mode 100644 index 8106985a1..000000000 --- a/sdks/typescript/models/DbtGenerateTmlRequest.ts +++ /dev/null @@ -1,82 +0,0 @@ -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { ModelTableList } from '../models/ModelTableList'; -import { HttpFile } from '../http/http'; - -export class DbtGenerateTmlRequest { - /** - * Unique ID of the DBT connection. - */ - 'dbt_connection_identifier': string; - /** - * List of Models and their respective Tables - */ - 'model_tables'?: Array; - /** - * Mention the worksheet tmls to import - */ - 'import_worksheets': DbtGenerateTmlRequestImportWorksheetsEnum; - /** - * List of worksheets is mandatory when import_Worksheets is type SELECTED - */ - 'worksheets'?: Array; - /** - * 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’ - */ - 'file_content'?: HttpFile; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "dbt_connection_identifier", - "baseName": "dbt_connection_identifier", - "type": "string", - "format": "" - }, - { - "name": "model_tables", - "baseName": "model_tables", - "type": "Array", - "format": "" - }, - { - "name": "import_worksheets", - "baseName": "import_worksheets", - "type": "DbtGenerateTmlRequestImportWorksheetsEnum", - "format": "" - }, - { - "name": "worksheets", - "baseName": "worksheets", - "type": "Array", - "format": "" - }, - { - "name": "file_content", - "baseName": "file_content", - "type": "HttpFile", - "format": "binary" - } ]; - - static getAttributeTypeMap() { - return DbtGenerateTmlRequest.attributeTypeMap; - } - - public constructor() { - } -} - - -export type DbtGenerateTmlRequestImportWorksheetsEnum = "ALL" | "NONE" | "SELECTED" ; - diff --git a/sdks/typescript/models/DeleteWebhookConfigurationsRequest.ts b/sdks/typescript/models/DeleteWebhookConfigurationsRequest.ts new file mode 100644 index 000000000..c52b89608 --- /dev/null +++ b/sdks/typescript/models/DeleteWebhookConfigurationsRequest.ts @@ -0,0 +1,38 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class DeleteWebhookConfigurationsRequest { + /** + * List of webhook identifiers to delete. + */ + 'webhook_identifiers': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "webhook_identifiers", + "baseName": "webhook_identifiers", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return DeleteWebhookConfigurationsRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/EntityHeader.ts b/sdks/typescript/models/EntityHeader.ts new file mode 100644 index 000000000..b039dea46 --- /dev/null +++ b/sdks/typescript/models/EntityHeader.ts @@ -0,0 +1,58 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class EntityHeader { + /** + * Description of the data source. + */ + 'description'?: string | null; + /** + * Display name of the data source. + */ + 'data_source_name'?: string | null; + /** + * Unique identifier of the data source. + */ + 'data_source_identifier'?: string | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "data_source_name", + "baseName": "data_source_name", + "type": "string", + "format": "" + }, + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EntityHeader.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/EurekaDataSourceSuggestionResponse.ts b/sdks/typescript/models/EurekaDataSourceSuggestionResponse.ts new file mode 100644 index 000000000..43b4c42f4 --- /dev/null +++ b/sdks/typescript/models/EurekaDataSourceSuggestionResponse.ts @@ -0,0 +1,39 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { DataSource } from '../models/DataSource'; +import { HttpFile } from '../http/http'; + +export class EurekaDataSourceSuggestionResponse { + /** + * List of data sources suggested. + */ + 'data_sources'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "data_sources", + "baseName": "data_sources", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EurekaDataSourceSuggestionResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/EurekaGetNLInstructionsResponse.ts b/sdks/typescript/models/EurekaGetNLInstructionsResponse.ts new file mode 100644 index 000000000..ed3e5d62d --- /dev/null +++ b/sdks/typescript/models/EurekaGetNLInstructionsResponse.ts @@ -0,0 +1,39 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { NLInstructionsInfo } from '../models/NLInstructionsInfo'; +import { HttpFile } from '../http/http'; + +export class EurekaGetNLInstructionsResponse { + /** + * List of NL instructions with their scopes. + */ + 'nl_instructions_info': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "nl_instructions_info", + "baseName": "nl_instructions_info", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EurekaGetNLInstructionsResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/EurekaGetRelevantQuestionsResponse.ts b/sdks/typescript/models/EurekaGetRelevantQuestionsResponse.ts new file mode 100644 index 000000000..95f6a5bf9 --- /dev/null +++ b/sdks/typescript/models/EurekaGetRelevantQuestionsResponse.ts @@ -0,0 +1,39 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { EurekaRelevantQuestion } from '../models/EurekaRelevantQuestion'; +import { HttpFile } from '../http/http'; + +export class EurekaGetRelevantQuestionsResponse { + /** + * List of relevant questions that can be run on their respective data sources. + */ + 'relevant_questions'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "relevant_questions", + "baseName": "relevant_questions", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EurekaGetRelevantQuestionsResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/EurekaRelevantQuestion.ts b/sdks/typescript/models/EurekaRelevantQuestion.ts new file mode 100644 index 000000000..5ae7807b9 --- /dev/null +++ b/sdks/typescript/models/EurekaRelevantQuestion.ts @@ -0,0 +1,58 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class EurekaRelevantQuestion { + /** + * NL query that can be run using spotter aka natural language search to get an AI generated answer. + */ + 'query'?: string | null; + /** + * Unique identifier of the data source on which this query can be run on. + */ + 'data_source_identifier'?: string | null; + /** + * Display name of the data source on which this query can be run on. + */ + 'data_source_name'?: string | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + }, + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + }, + { + "name": "data_source_name", + "baseName": "data_source_name", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EurekaRelevantQuestion.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/CreateEmailCustomisationRequest.ts b/sdks/typescript/models/EurekaSetNLInstructionsResponse.ts similarity index 69% rename from sdks/typescript/models/CreateEmailCustomisationRequest.ts rename to sdks/typescript/models/EurekaSetNLInstructionsResponse.ts index a075c5fc5..3e5f1e7d8 100644 --- a/sdks/typescript/models/CreateEmailCustomisationRequest.ts +++ b/sdks/typescript/models/EurekaSetNLInstructionsResponse.ts @@ -12,24 +12,24 @@ import { HttpFile } from '../http/http'; -export class CreateEmailCustomisationRequest { +export class EurekaSetNLInstructionsResponse { /** - * Email customization configuration as key value pair + * Success status of the operation. */ - 'template_properties': any; + 'success': boolean; static readonly discriminator: string | undefined = undefined; static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ { - "name": "template_properties", - "baseName": "template_properties", - "type": "any", + "name": "success", + "baseName": "success", + "type": "boolean", "format": "" } ]; static getAttributeTypeMap() { - return CreateEmailCustomisationRequest.attributeTypeMap; + return EurekaSetNLInstructionsResponse.attributeTypeMap; } public constructor() { diff --git a/sdks/typescript/models/EventChannelConfig.ts b/sdks/typescript/models/EventChannelConfig.ts new file mode 100644 index 000000000..ea9264537 --- /dev/null +++ b/sdks/typescript/models/EventChannelConfig.ts @@ -0,0 +1,52 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class EventChannelConfig { + /** + * Type of event for which communication channels are configured + */ + 'event_type': EventChannelConfigEventTypeEnum; + /** + * Communication channels enabled for this event type. Empty array indicates no channels are enabled. + */ + 'channels': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "event_type", + "baseName": "event_type", + "type": "EventChannelConfigEventTypeEnum", + "format": "" + }, + { + "name": "channels", + "baseName": "channels", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EventChannelConfig.attributeTypeMap; + } + + public constructor() { + } +} + + +export type EventChannelConfigEventTypeEnum = "LIVEBOARD_SCHEDULE" ; +export type EventChannelConfigChannelsEnum = "EMAIL" | "WEBHOOK" ; + diff --git a/sdks/typescript/models/EventChannelConfigInput.ts b/sdks/typescript/models/EventChannelConfigInput.ts new file mode 100644 index 000000000..16da8be4e --- /dev/null +++ b/sdks/typescript/models/EventChannelConfigInput.ts @@ -0,0 +1,52 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class EventChannelConfigInput { + /** + * Type of event for which communication channels are configured + */ + 'event_type': EventChannelConfigInputEventTypeEnum; + /** + * Communication channels enabled for this event type. Empty array disables all channels for this event. + */ + 'channels': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "event_type", + "baseName": "event_type", + "type": "EventChannelConfigInputEventTypeEnum", + "format": "" + }, + { + "name": "channels", + "baseName": "channels", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return EventChannelConfigInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type EventChannelConfigInputEventTypeEnum = "LIVEBOARD_SCHEDULE" ; +export type EventChannelConfigInputChannelsEnum = "EMAIL" | "WEBHOOK" ; + diff --git a/sdks/typescript/models/ExportMetadataTMLRequestExportOptions.ts b/sdks/typescript/models/ExportMetadataTMLRequestExportOptions.ts index d8eea6765..d632369b0 100644 --- a/sdks/typescript/models/ExportMetadataTMLRequestExportOptions.ts +++ b/sdks/typescript/models/ExportMetadataTMLRequestExportOptions.ts @@ -36,6 +36,10 @@ export class ExportMetadataTMLRequestExportOptions { * 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 */ 'export_column_security_rules'?: boolean | null; + /** + * 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 + */ + 'export_with_column_aliases'?: boolean | null; static readonly discriminator: string | undefined = undefined; @@ -69,6 +73,12 @@ export class ExportMetadataTMLRequestExportOptions { "baseName": "export_column_security_rules", "type": "boolean", "format": "" + }, + { + "name": "export_with_column_aliases", + "baseName": "export_with_column_aliases", + "type": "boolean", + "format": "" } ]; static getAttributeTypeMap() { diff --git a/sdks/typescript/models/ExportOptions.ts b/sdks/typescript/models/ExportOptions.ts index 83d2e76f6..cb3ff2d28 100644 --- a/sdks/typescript/models/ExportOptions.ts +++ b/sdks/typescript/models/ExportOptions.ts @@ -36,6 +36,10 @@ export class ExportOptions { * 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 */ 'export_column_security_rules'?: boolean | null; + /** + * 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 + */ + 'export_with_column_aliases'?: boolean | null; static readonly discriminator: string | undefined = undefined; @@ -69,6 +73,12 @@ export class ExportOptions { "baseName": "export_column_security_rules", "type": "boolean", "format": "" + }, + { + "name": "export_with_column_aliases", + "baseName": "export_with_column_aliases", + "type": "boolean", + "format": "" } ]; static getAttributeTypeMap() { diff --git a/sdks/typescript/models/GetCustomAccessTokenRequest.ts b/sdks/typescript/models/GetCustomAccessTokenRequest.ts index ed9017544..c27d08e34 100644 --- a/sdks/typescript/models/GetCustomAccessTokenRequest.ts +++ b/sdks/typescript/models/GetCustomAccessTokenRequest.ts @@ -14,6 +14,7 @@ import { FilterRules } from '../models/FilterRules'; import { GroupObject } from '../models/GroupObject'; import { ParameterValues } from '../models/ParameterValues'; import { TokenAccessScopeObject } from '../models/TokenAccessScopeObject'; +import { VariableValues } from '../models/VariableValues'; import { HttpFile } from '../http/http'; export class GetCustomAccessTokenRequest { @@ -38,7 +39,7 @@ export class GetCustomAccessTokenRequest { */ 'org_identifier'?: string; /** - * Indicates whether the specified attributes should be persisted or not. + * Indicates whether the specified attributes should be persisted or not. RESET and NONE are not applicable if you are setting variable_values. */ 'persist_option': GetCustomAccessTokenRequestPersistOptionEnum; /** @@ -50,6 +51,10 @@ export class GetCustomAccessTokenRequest { */ 'parameter_values'?: Array; /** + * List of variable values where `name` references an existing formula variable and `values` is any value from the corresponding column. Version: 10.14.0.cl or later + */ + 'variable_values'?: Array; + /** * Objects on which the filter rules and parameters values should be applied to */ 'objects'?: Array; @@ -66,7 +71,7 @@ export class GetCustomAccessTokenRequest { */ 'groups'?: Array; /** - * 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. Version: 10.5.0.cl or later + * 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. New formula variables won\'t be created. Version: 10.5.0.cl or later */ 'auto_create'?: boolean | null; @@ -121,6 +126,12 @@ export class GetCustomAccessTokenRequest { "type": "Array", "format": "" }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "Array", + "format": "" + }, { "name": "objects", "baseName": "objects", diff --git a/sdks/typescript/models/GetDataSourceSuggestionsRequest.ts b/sdks/typescript/models/GetDataSourceSuggestionsRequest.ts new file mode 100644 index 000000000..7b18bad67 --- /dev/null +++ b/sdks/typescript/models/GetDataSourceSuggestionsRequest.ts @@ -0,0 +1,38 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class GetDataSourceSuggestionsRequest { + /** + * User query used to suggest data sources. + */ + 'query': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return GetDataSourceSuggestionsRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/GetNLInstructionsRequest.ts b/sdks/typescript/models/GetNLInstructionsRequest.ts new file mode 100644 index 000000000..bc88d92f0 --- /dev/null +++ b/sdks/typescript/models/GetNLInstructionsRequest.ts @@ -0,0 +1,38 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class GetNLInstructionsRequest { + /** + * Unique ID or name of the data-model for which to retrieve NL instructions. + */ + 'data_source_identifier': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return GetNLInstructionsRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/GetRelevantQuestionsRequest.ts b/sdks/typescript/models/GetRelevantQuestionsRequest.ts new file mode 100644 index 000000000..d44af2ea6 --- /dev/null +++ b/sdks/typescript/models/GetRelevantQuestionsRequest.ts @@ -0,0 +1,74 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { GetRelevantQuestionsRequestAiContext } from '../models/GetRelevantQuestionsRequestAiContext'; +import { GetRelevantQuestionsRequestMetadataContext } from '../models/GetRelevantQuestionsRequestMetadataContext'; +import { HttpFile } from '../http/http'; + +export class GetRelevantQuestionsRequest { + 'metadata_context': GetRelevantQuestionsRequestMetadataContext; + /** + * Maximum number of relevant questions that is allowed in the response, default = 5. + */ + 'limit_relevant_questions'?: number; + /** + * If true, results are not returned from cache & calculated every time. + */ + 'bypass_cache'?: boolean | null; + /** + * A user query that requires breaking down into smaller, more manageable analytical questions to facilitate better understanding and analysis. + */ + 'query': string; + 'ai_context'?: GetRelevantQuestionsRequestAiContext; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "metadata_context", + "baseName": "metadata_context", + "type": "GetRelevantQuestionsRequestMetadataContext", + "format": "" + }, + { + "name": "limit_relevant_questions", + "baseName": "limit_relevant_questions", + "type": "number", + "format": "int32" + }, + { + "name": "bypass_cache", + "baseName": "bypass_cache", + "type": "boolean", + "format": "" + }, + { + "name": "query", + "baseName": "query", + "type": "string", + "format": "" + }, + { + "name": "ai_context", + "baseName": "ai_context", + "type": "GetRelevantQuestionsRequestAiContext", + "format": "" + } ]; + + static getAttributeTypeMap() { + return GetRelevantQuestionsRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/GetRelevantQuestionsRequestAiContext.ts b/sdks/typescript/models/GetRelevantQuestionsRequestAiContext.ts new file mode 100644 index 000000000..a1624814c --- /dev/null +++ b/sdks/typescript/models/GetRelevantQuestionsRequestAiContext.ts @@ -0,0 +1,51 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* Additional context to guide the response. +*/ +export class GetRelevantQuestionsRequestAiContext { + /** + * User specific text instructions sent to AI system for processing the query. + */ + 'instructions'?: Array | null; + /** + * User provided content like text data, csv data as a string message to provide context & potentially improve the quality of the response. + */ + 'content'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "content", + "baseName": "content", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return GetRelevantQuestionsRequestAiContext.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/GetRelevantQuestionsRequestMetadataContext.ts b/sdks/typescript/models/GetRelevantQuestionsRequestMetadataContext.ts new file mode 100644 index 000000000..0f04b0d6c --- /dev/null +++ b/sdks/typescript/models/GetRelevantQuestionsRequestMetadataContext.ts @@ -0,0 +1,71 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* metadata for the query to enable generation of relevant sub-questions; at least one context identifier is required. +*/ +export class GetRelevantQuestionsRequestMetadataContext { + /** + * List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them. + */ + 'data_source_identifiers'?: Array | null; + /** + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'answer_identifiers'?: Array | null; + /** + * Unique identifier to denote current conversation. + */ + 'conversation_identifier'?: string | null; + /** + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'liveboard_identifiers'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "data_source_identifiers", + "baseName": "data_source_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "answer_identifiers", + "baseName": "answer_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "liveboard_identifiers", + "baseName": "liveboard_identifiers", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return GetRelevantQuestionsRequestMetadataContext.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/GroupsImportListInput.ts b/sdks/typescript/models/GroupsImportListInput.ts index 2f6b54040..75d138fce 100644 --- a/sdks/typescript/models/GroupsImportListInput.ts +++ b/sdks/typescript/models/GroupsImportListInput.ts @@ -117,7 +117,7 @@ export class GroupsImportListInput { } -export type GroupsImportListInputPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; -export type GroupsImportListInputTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" ; +export type GroupsImportListInputPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; +export type GroupsImportListInputTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP" ; export type GroupsImportListInputVisibilityEnum = "SHARABLE" | "NON_SHARABLE" ; diff --git a/sdks/typescript/models/LBContextInput.ts b/sdks/typescript/models/LBContextInput.ts new file mode 100644 index 000000000..6b23f7e21 --- /dev/null +++ b/sdks/typescript/models/LBContextInput.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class LBContextInput { + /** + * Unique identifier of the liveboard. + */ + 'liveboard_identifier': string; + /** + * Unique identifier of the visualization. + */ + 'visualization_identifier': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "liveboard_identifier", + "baseName": "liveboard_identifier", + "type": "string", + "format": "" + }, + { + "name": "visualization_identifier", + "baseName": "visualization_identifier", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return LBContextInput.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/MetadataContext.ts b/sdks/typescript/models/MetadataContext.ts new file mode 100644 index 000000000..44cca3ab8 --- /dev/null +++ b/sdks/typescript/models/MetadataContext.ts @@ -0,0 +1,68 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class MetadataContext { + /** + * List of data_source_identifiers to provide context for breaking down user query into analytical queries that can be run on them. + */ + 'data_source_identifiers'?: Array | null; + /** + * List of answer unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'answer_identifiers'?: Array | null; + /** + * Unique identifier to denote current conversation. + */ + 'conversation_identifier'?: string | null; + /** + * List of liveboard unique identifiers (GUIDs) whose data will be used to guide the response. + */ + 'liveboard_identifiers'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "data_source_identifiers", + "baseName": "data_source_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "answer_identifiers", + "baseName": "answer_identifiers", + "type": "Array", + "format": "" + }, + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "liveboard_identifiers", + "baseName": "liveboard_identifiers", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return MetadataContext.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/NLInstructionsInfo.ts b/sdks/typescript/models/NLInstructionsInfo.ts new file mode 100644 index 000000000..2ee2837cd --- /dev/null +++ b/sdks/typescript/models/NLInstructionsInfo.ts @@ -0,0 +1,51 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class NLInstructionsInfo { + /** + * User instructions for natural language processing. + */ + 'instructions': Array; + /** + * Scope of the instruction. + */ + 'scope': NLInstructionsInfoScopeEnum; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "scope", + "baseName": "scope", + "type": "NLInstructionsInfoScopeEnum", + "format": "" + } ]; + + static getAttributeTypeMap() { + return NLInstructionsInfo.attributeTypeMap; + } + + public constructor() { + } +} + + +export type NLInstructionsInfoScopeEnum = "GLOBAL" ; + diff --git a/sdks/typescript/models/NLInstructionsInfoInput.ts b/sdks/typescript/models/NLInstructionsInfoInput.ts new file mode 100644 index 000000000..8bacb84ef --- /dev/null +++ b/sdks/typescript/models/NLInstructionsInfoInput.ts @@ -0,0 +1,51 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class NLInstructionsInfoInput { + /** + * User instructions for natural language processing. + */ + 'instructions': Array; + /** + * Scope of the instruction (USER or GLOBAL). Defaults to GLOBAL. + */ + 'scope': NLInstructionsInfoInputScopeEnum; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "instructions", + "baseName": "instructions", + "type": "Array", + "format": "" + }, + { + "name": "scope", + "baseName": "scope", + "type": "NLInstructionsInfoInputScopeEnum", + "format": "" + } ]; + + static getAttributeTypeMap() { + return NLInstructionsInfoInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type NLInstructionsInfoInputScopeEnum = "GLOBAL" ; + diff --git a/sdks/typescript/models/ObjectSerializer.ts b/sdks/typescript/models/ObjectSerializer.ts index 85cc8e230..1aa0203b9 100644 --- a/sdks/typescript/models/ObjectSerializer.ts +++ b/sdks/typescript/models/ObjectSerializer.ts @@ -1,3 +1,4 @@ +export * from '../models/AIContext'; export * from '../models/APIKey'; export * from '../models/APIKeyInput'; export * from '../models/AccessToken'; @@ -8,7 +9,9 @@ export * from '../models/ActionDetails'; export * from '../models/ActionDetailsInput'; export * from '../models/ActionDetailsInputCreate'; export * from '../models/ActivateUserRequest'; +export * from '../models/AgentConversation'; export * from '../models/AnswerContent'; +export * from '../models/AnswerContextInput'; export * from '../models/AnswerDataResponse'; export * from '../models/AssignChangeAuthorRequest'; export * from '../models/AssignTagRequest'; @@ -40,12 +43,19 @@ export * from '../models/CommitFileType'; export * from '../models/CommitHistoryResponse'; export * from '../models/CommitResponse'; export * from '../models/CommiterType'; +export * from '../models/CommunicationChannelPreferencesResponse'; +export * from '../models/ConfigureCommunicationChannelPreferencesRequest'; export * from '../models/ConnectionConfigurationResponse'; export * from '../models/ConnectionConfigurationSearchRequest'; export * from '../models/ConnectionInput'; +export * from '../models/ContextPayloadV2Input'; export * from '../models/Conversation'; +export * from '../models/ConversationSettingsInput'; export * from '../models/ConvertWorksheetToModelRequest'; export * from '../models/CopyObjectRequest'; +export * from '../models/CreateAgentConversationRequest'; +export * from '../models/CreateAgentConversationRequestConversationSettings'; +export * from '../models/CreateAgentConversationRequestMetadataContext'; export * from '../models/CreateCalendarRequest'; export * from '../models/CreateCalendarRequestTableReference'; export * from '../models/CreateConfigRequest'; @@ -70,9 +80,14 @@ export * from '../models/CreateTagRequest'; export * from '../models/CreateUserGroupRequest'; export * from '../models/CreateUserRequest'; export * from '../models/CreateVariableRequest'; +export * from '../models/CreateWebhookConfigurationRequest'; +export * from '../models/CreateWebhookConfigurationRequestAuthentication'; +export * from '../models/CreateWebhookConfigurationRequestSignatureVerification'; export * from '../models/CronExpression'; export * from '../models/CronExpressionInput'; export * from '../models/CustomActionMetadataTypeInput'; +export * from '../models/DataSource'; +export * from '../models/DataSourceContextInput'; export * from '../models/DataWarehouseObjectInput'; export * from '../models/DataWarehouseObjects'; export * from '../models/Database'; @@ -88,12 +103,21 @@ export * from '../models/DeleteConnectionRequest'; export * from '../models/DeleteMetadataRequest'; export * from '../models/DeleteMetadataTypeInput'; export * from '../models/DeleteOrgEmailCustomizationRequest'; +export * from '../models/DeleteWebhookConfigurationsRequest'; export * from '../models/DeployCommitRequest'; export * from '../models/DeployResponse'; +export * from '../models/EntityHeader'; export * from '../models/ErrorResponse'; +export * from '../models/EurekaDataSourceSuggestionResponse'; export * from '../models/EurekaDecomposeQueryResponse'; +export * from '../models/EurekaGetNLInstructionsResponse'; +export * from '../models/EurekaGetRelevantQuestionsResponse'; export * from '../models/EurekaLLMDecomposeQueryResponse'; export * from '../models/EurekaLLMSuggestedQuery'; +export * from '../models/EurekaRelevantQuestion'; +export * from '../models/EurekaSetNLInstructionsResponse'; +export * from '../models/EventChannelConfig'; +export * from '../models/EventChannelConfigInput'; export * from '../models/ExcludeMetadataListItemInput'; export * from '../models/ExportAnswerReportRequest'; export * from '../models/ExportAnswerReportRequestRegionalSettings'; @@ -127,9 +151,14 @@ export * from '../models/GenerateCSVRequest'; export * from '../models/GenericInfo'; export * from '../models/GetAsyncImportStatusResponse'; export * from '../models/GetCustomAccessTokenRequest'; +export * from '../models/GetDataSourceSuggestionsRequest'; export * from '../models/GetFullAccessTokenRequest'; export * from '../models/GetFullAccessTokenRequestUserParameters'; +export * from '../models/GetNLInstructionsRequest'; export * from '../models/GetObjectAccessTokenRequest'; +export * from '../models/GetRelevantQuestionsRequest'; +export * from '../models/GetRelevantQuestionsRequestAiContext'; +export * from '../models/GetRelevantQuestionsRequestMetadataContext'; export * from '../models/GetTokenResponse'; export * from '../models/GroupObject'; export * from '../models/GroupsImportListInput'; @@ -145,11 +174,11 @@ export * from '../models/ImportUserType'; export * from '../models/ImportUsersRequest'; export * from '../models/ImportUsersResponse'; export * from '../models/InputEurekaNLSRequest'; -export * from '../models/InputVariableValue'; export * from '../models/JWTMetadataObject'; export * from '../models/JWTParameter'; export * from '../models/JWTUserOptions'; export * from '../models/JWTUserOptionsFull'; +export * from '../models/LBContextInput'; export * from '../models/LiveboardContent'; export * from '../models/LiveboardDataResponse'; export * from '../models/LiveboardOptions'; @@ -157,6 +186,7 @@ export * from '../models/LiveboardOptionsInput'; export * from '../models/LogResponse'; export * from '../models/LoginRequest'; export * from '../models/MetadataAssociationItem'; +export * from '../models/MetadataContext'; export * from '../models/MetadataInput'; export * from '../models/MetadataListItemInput'; export * from '../models/MetadataObject'; @@ -164,9 +194,15 @@ export * from '../models/MetadataResponse'; export * from '../models/MetadataSearchResponse'; export * from '../models/MetadataSearchSortOptions'; export * from '../models/ModelTableList'; +export * from '../models/NLInstructionsInfo'; +export * from '../models/NLInstructionsInfoInput'; export * from '../models/ObjectIDAndName'; export * from '../models/Org'; +export * from '../models/OrgChannelConfigInput'; +export * from '../models/OrgChannelConfigResponse'; +export * from '../models/OrgDetails'; export * from '../models/OrgInfo'; +export * from '../models/OrgPreferenceSearchCriteriaInput'; export * from '../models/OrgResponse'; export * from '../models/OrgType'; export * from '../models/ParameterValues'; @@ -228,6 +264,7 @@ export * from '../models/Scope'; export * from '../models/SearchCalendarsRequest'; export * from '../models/SearchCalendarsRequestSortOptions'; export * from '../models/SearchCommitsRequest'; +export * from '../models/SearchCommunicationChannelPreferencesRequest'; export * from '../models/SearchConfigRequest'; export * from '../models/SearchConnectionRequest'; export * from '../models/SearchConnectionRequestSortOptions'; @@ -252,7 +289,13 @@ export * from '../models/SearchUserGroupsRequestSortOptions'; export * from '../models/SearchUsersRequest'; export * from '../models/SearchUsersRequestSortOptions'; export * from '../models/SearchVariablesRequest'; +export * from '../models/SearchWebhookConfigurationsRequest'; +export * from '../models/SearchWebhookConfigurationsRequestSortOptions'; +export * from '../models/SendAgentMessageRequest'; +export * from '../models/SendAgentMessageResponse'; +export * from '../models/SendAgentMessageStreamingRequest'; export * from '../models/SendMessageRequest'; +export * from '../models/SetNLInstructionsRequest'; export * from '../models/ShareMetadataRequest'; export * from '../models/ShareMetadataTypeInput'; export * from '../models/SharePermissionsInput'; @@ -305,6 +348,7 @@ export * from '../models/UpdateUserGroupRequest'; export * from '../models/UpdateUserRequest'; export * from '../models/UpdateVariableRequest'; export * from '../models/UpdateVariableValuesRequest'; +export * from '../models/UpdateWebhookConfigurationRequest'; export * from '../models/User'; export * from '../models/UserGroup'; export * from '../models/UserGroupResponse'; @@ -314,11 +358,33 @@ export * from '../models/UserParameterOptions'; export * from '../models/UserPrincipal'; export * from '../models/ValidateMergeRequest'; export * from '../models/ValidateTokenRequest'; +export * from '../models/ValueScopeInput'; export * from '../models/Variable'; export * from '../models/VariableDetailInput'; +export * from '../models/VariableUpdateAssignmentInput'; +export * from '../models/VariableUpdateScopeInput'; export * from '../models/VariableValue'; -export * from '../models/VariableValueInput'; +export * from '../models/VariableValues'; +export * from '../models/WebhookAuthApiKey'; +export * from '../models/WebhookAuthApiKeyInput'; +export * from '../models/WebhookAuthBasicAuth'; +export * from '../models/WebhookAuthBasicAuthInput'; +export * from '../models/WebhookAuthOAuth2'; +export * from '../models/WebhookAuthOAuth2Input'; +export * from '../models/WebhookAuthentication'; +export * from '../models/WebhookAuthenticationInput'; +export * from '../models/WebhookDeleteFailure'; +export * from '../models/WebhookDeleteResponse'; +export * from '../models/WebhookOrg'; +export * from '../models/WebhookPagination'; +export * from '../models/WebhookResponse'; +export * from '../models/WebhookSearchResponse'; +export * from '../models/WebhookSignatureVerification'; +export * from '../models/WebhookSignatureVerificationInput'; +export * from '../models/WebhookSortOptionsInput'; +export * from '../models/WebhookUser'; +import { AIContext } from '../models/AIContext'; import { APIKey } from '../models/APIKey'; import { APIKeyInput } from '../models/APIKeyInput'; import { AccessToken } from '../models/AccessToken'; @@ -329,7 +395,9 @@ import { ActionDetails } from '../models/ActionDetails'; import { ActionDetailsInput } from '../models/ActionDetailsInput'; import { ActionDetailsInputCreate } from '../models/ActionDetailsInputCreate'; import { ActivateUserRequest } from '../models/ActivateUserRequest'; +import { AgentConversation } from '../models/AgentConversation'; import { AnswerContent } from '../models/AnswerContent'; +import { AnswerContextInput } from '../models/AnswerContextInput'; import { AnswerDataResponse } from '../models/AnswerDataResponse'; import { AssignChangeAuthorRequest } from '../models/AssignChangeAuthorRequest'; import { AssignTagRequest } from '../models/AssignTagRequest'; @@ -361,12 +429,19 @@ import { CommitFileType } from '../models/CommitFileType'; import { CommitHistoryResponse } from '../models/CommitHistoryResponse'; import { CommitResponse } from '../models/CommitResponse'; import { CommiterType } from '../models/CommiterType'; +import { CommunicationChannelPreferencesResponse } from '../models/CommunicationChannelPreferencesResponse'; +import { ConfigureCommunicationChannelPreferencesRequest } from '../models/ConfigureCommunicationChannelPreferencesRequest'; import { ConnectionConfigurationResponse , ConnectionConfigurationResponsePolicyProcessesEnum , ConnectionConfigurationResponseDataWarehouseTypeEnum , ConnectionConfigurationResponsePolicyTypeEnum } from '../models/ConnectionConfigurationResponse'; import { ConnectionConfigurationSearchRequest , ConnectionConfigurationSearchRequestPolicyTypeEnum } from '../models/ConnectionConfigurationSearchRequest'; import { ConnectionInput } from '../models/ConnectionInput'; +import { ContextPayloadV2Input, ContextPayloadV2InputTypeEnum } from '../models/ContextPayloadV2Input'; import { Conversation } from '../models/Conversation'; +import { ConversationSettingsInput } from '../models/ConversationSettingsInput'; import { ConvertWorksheetToModelRequest } from '../models/ConvertWorksheetToModelRequest'; import { CopyObjectRequest , CopyObjectRequestTypeEnum } from '../models/CopyObjectRequest'; +import { CreateAgentConversationRequest } from '../models/CreateAgentConversationRequest'; +import { CreateAgentConversationRequestConversationSettings } from '../models/CreateAgentConversationRequestConversationSettings'; +import { CreateAgentConversationRequestMetadataContext, CreateAgentConversationRequestMetadataContextTypeEnum } from '../models/CreateAgentConversationRequestMetadataContext'; import { CreateCalendarRequest , CreateCalendarRequestCreationMethodEnum , CreateCalendarRequestCalendarTypeEnum , CreateCalendarRequestMonthOffsetEnum , CreateCalendarRequestStartDayOfWeekEnum } from '../models/CreateCalendarRequest'; import { CreateCalendarRequestTableReference } from '../models/CreateCalendarRequestTableReference'; import { CreateConfigRequest } from '../models/CreateConfigRequest'; @@ -390,10 +465,15 @@ import { CreateScheduleRequestRecipientDetails } from '../models/CreateScheduleR import { CreateTagRequest } from '../models/CreateTagRequest'; import { CreateUserGroupRequest , CreateUserGroupRequestPrivilegesEnum , CreateUserGroupRequestTypeEnum , CreateUserGroupRequestVisibilityEnum } from '../models/CreateUserGroupRequest'; import { CreateUserRequest , CreateUserRequestAccountTypeEnum , CreateUserRequestAccountStatusEnum , CreateUserRequestVisibilityEnum , CreateUserRequestPreferredLocaleEnum } from '../models/CreateUserRequest'; -import { CreateVariableRequest, CreateVariableRequestTypeEnum } from '../models/CreateVariableRequest'; +import { CreateVariableRequest, CreateVariableRequestTypeEnum , CreateVariableRequestDataTypeEnum } from '../models/CreateVariableRequest'; +import { CreateWebhookConfigurationRequest , CreateWebhookConfigurationRequestEventsEnum } from '../models/CreateWebhookConfigurationRequest'; +import { CreateWebhookConfigurationRequestAuthentication } from '../models/CreateWebhookConfigurationRequestAuthentication'; +import { CreateWebhookConfigurationRequestSignatureVerification, CreateWebhookConfigurationRequestSignatureVerificationTypeEnum , CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum } from '../models/CreateWebhookConfigurationRequestSignatureVerification'; import { CronExpression } from '../models/CronExpression'; import { CronExpressionInput } from '../models/CronExpressionInput'; import { CustomActionMetadataTypeInput, CustomActionMetadataTypeInputTypeEnum } from '../models/CustomActionMetadataTypeInput'; +import { DataSource } from '../models/DataSource'; +import { DataSourceContextInput } from '../models/DataSourceContextInput'; import { DataWarehouseObjectInput } from '../models/DataWarehouseObjectInput'; import { DataWarehouseObjects } from '../models/DataWarehouseObjects'; import { Database } from '../models/Database'; @@ -409,12 +489,21 @@ import { DeleteConnectionRequest } from '../models/DeleteConnectionRequest'; import { DeleteMetadataRequest } from '../models/DeleteMetadataRequest'; import { DeleteMetadataTypeInput, DeleteMetadataTypeInputTypeEnum } from '../models/DeleteMetadataTypeInput'; import { DeleteOrgEmailCustomizationRequest } from '../models/DeleteOrgEmailCustomizationRequest'; +import { DeleteWebhookConfigurationsRequest } from '../models/DeleteWebhookConfigurationsRequest'; import { DeployCommitRequest , DeployCommitRequestDeployTypeEnum , DeployCommitRequestDeployPolicyEnum } from '../models/DeployCommitRequest'; import { DeployResponse } from '../models/DeployResponse'; +import { EntityHeader } from '../models/EntityHeader'; import { ErrorResponse } from '../models/ErrorResponse'; +import { EurekaDataSourceSuggestionResponse } from '../models/EurekaDataSourceSuggestionResponse'; import { EurekaDecomposeQueryResponse } from '../models/EurekaDecomposeQueryResponse'; +import { EurekaGetNLInstructionsResponse } from '../models/EurekaGetNLInstructionsResponse'; +import { EurekaGetRelevantQuestionsResponse } from '../models/EurekaGetRelevantQuestionsResponse'; import { EurekaLLMDecomposeQueryResponse } from '../models/EurekaLLMDecomposeQueryResponse'; import { EurekaLLMSuggestedQuery } from '../models/EurekaLLMSuggestedQuery'; +import { EurekaRelevantQuestion } from '../models/EurekaRelevantQuestion'; +import { EurekaSetNLInstructionsResponse } from '../models/EurekaSetNLInstructionsResponse'; +import { EventChannelConfig, EventChannelConfigEventTypeEnum , EventChannelConfigChannelsEnum } from '../models/EventChannelConfig'; +import { EventChannelConfigInput, EventChannelConfigInputEventTypeEnum , EventChannelConfigInputChannelsEnum } from '../models/EventChannelConfigInput'; import { ExcludeMetadataListItemInput , ExcludeMetadataListItemInputTypeEnum } from '../models/ExcludeMetadataListItemInput'; import { ExportAnswerReportRequest , ExportAnswerReportRequestFileFormatEnum } from '../models/ExportAnswerReportRequest'; import { ExportAnswerReportRequestRegionalSettings, ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum , ExportAnswerReportRequestRegionalSettingsUserLocaleEnum , ExportAnswerReportRequestRegionalSettingsNumberFormatLocaleEnum , ExportAnswerReportRequestRegionalSettingsDateFormatLocaleEnum } from '../models/ExportAnswerReportRequestRegionalSettings'; @@ -447,10 +536,15 @@ import { FrequencyInput } from '../models/FrequencyInput'; import { GenerateCSVRequest , GenerateCSVRequestCalendarTypeEnum , GenerateCSVRequestMonthOffsetEnum , GenerateCSVRequestStartDayOfWeekEnum } from '../models/GenerateCSVRequest'; import { GenericInfo } from '../models/GenericInfo'; import { GetAsyncImportStatusResponse } from '../models/GetAsyncImportStatusResponse'; -import { GetCustomAccessTokenRequest , GetCustomAccessTokenRequestPersistOptionEnum } from '../models/GetCustomAccessTokenRequest'; +import { GetCustomAccessTokenRequest , GetCustomAccessTokenRequestPersistOptionEnum } from '../models/GetCustomAccessTokenRequest'; +import { GetDataSourceSuggestionsRequest } from '../models/GetDataSourceSuggestionsRequest'; import { GetFullAccessTokenRequest } from '../models/GetFullAccessTokenRequest'; import { GetFullAccessTokenRequestUserParameters } from '../models/GetFullAccessTokenRequestUserParameters'; +import { GetNLInstructionsRequest } from '../models/GetNLInstructionsRequest'; import { GetObjectAccessTokenRequest } from '../models/GetObjectAccessTokenRequest'; +import { GetRelevantQuestionsRequest } from '../models/GetRelevantQuestionsRequest'; +import { GetRelevantQuestionsRequestAiContext } from '../models/GetRelevantQuestionsRequestAiContext'; +import { GetRelevantQuestionsRequestMetadataContext } from '../models/GetRelevantQuestionsRequestMetadataContext'; import { GetTokenResponse } from '../models/GetTokenResponse'; import { GroupObject } from '../models/GroupObject'; import { GroupsImportListInput , GroupsImportListInputPrivilegesEnum , GroupsImportListInputTypeEnum , GroupsImportListInputVisibilityEnum } from '../models/GroupsImportListInput'; @@ -466,11 +560,11 @@ import { ImportUserType } from '../models/ImportUserType'; import { ImportUsersRequest } from '../models/ImportUsersRequest'; import { ImportUsersResponse } from '../models/ImportUsersResponse'; import { InputEurekaNLSRequest } from '../models/InputEurekaNLSRequest'; -import { InputVariableValue , InputVariableValuePrincipalTypeEnum } from '../models/InputVariableValue'; import { JWTMetadataObject , JWTMetadataObjectTypeEnum } from '../models/JWTMetadataObject'; import { JWTParameter } from '../models/JWTParameter'; import { JWTUserOptions } from '../models/JWTUserOptions'; import { JWTUserOptionsFull } from '../models/JWTUserOptionsFull'; +import { LBContextInput } from '../models/LBContextInput'; import { LiveboardContent } from '../models/LiveboardContent'; import { LiveboardDataResponse } from '../models/LiveboardDataResponse'; import { LiveboardOptions } from '../models/LiveboardOptions'; @@ -478,6 +572,7 @@ import { LiveboardOptionsInput } from '../models/LiveboardOptionsInput'; import { LogResponse } from '../models/LogResponse'; import { LoginRequest } from '../models/LoginRequest'; import { MetadataAssociationItem } from '../models/MetadataAssociationItem'; +import { MetadataContext } from '../models/MetadataContext'; import { MetadataInput , MetadataInputTypeEnum } from '../models/MetadataInput'; import { MetadataListItemInput , MetadataListItemInputTypeEnum , MetadataListItemInputSubtypesEnum } from '../models/MetadataListItemInput'; import { MetadataObject , MetadataObjectTypeEnum } from '../models/MetadataObject'; @@ -485,9 +580,15 @@ import { MetadataResponse , MetadataResponseTypeEnum } from '../models/Metada import { MetadataSearchResponse , MetadataSearchResponseMetadataTypeEnum } from '../models/MetadataSearchResponse'; import { MetadataSearchSortOptions, MetadataSearchSortOptionsFieldNameEnum , MetadataSearchSortOptionsOrderEnum } from '../models/MetadataSearchSortOptions'; import { ModelTableList } from '../models/ModelTableList'; +import { NLInstructionsInfo , NLInstructionsInfoScopeEnum } from '../models/NLInstructionsInfo'; +import { NLInstructionsInfoInput , NLInstructionsInfoInputScopeEnum } from '../models/NLInstructionsInfoInput'; import { ObjectIDAndName } from '../models/ObjectIDAndName'; import { Org } from '../models/Org'; +import { OrgChannelConfigInput , OrgChannelConfigInputOperationEnum , OrgChannelConfigInputResetEventsEnum } from '../models/OrgChannelConfigInput'; +import { OrgChannelConfigResponse } from '../models/OrgChannelConfigResponse'; +import { OrgDetails } from '../models/OrgDetails'; import { OrgInfo } from '../models/OrgInfo'; +import { OrgPreferenceSearchCriteriaInput , OrgPreferenceSearchCriteriaInputEventTypesEnum } from '../models/OrgPreferenceSearchCriteriaInput'; import { OrgResponse , OrgResponseStatusEnum , OrgResponseVisibilityEnum } from '../models/OrgResponse'; import { OrgType } from '../models/OrgType'; import { ParameterValues } from '../models/ParameterValues'; @@ -549,6 +650,7 @@ import { Scope } from '../models/Scope'; import { SearchCalendarsRequest } from '../models/SearchCalendarsRequest'; import { SearchCalendarsRequestSortOptions, SearchCalendarsRequestSortOptionsFieldNameEnum , SearchCalendarsRequestSortOptionsOrderEnum } from '../models/SearchCalendarsRequestSortOptions'; import { SearchCommitsRequest , SearchCommitsRequestMetadataTypeEnum } from '../models/SearchCommitsRequest'; +import { SearchCommunicationChannelPreferencesRequest, SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum } from '../models/SearchCommunicationChannelPreferencesRequest'; import { SearchConfigRequest } from '../models/SearchConfigRequest'; import { SearchConnectionRequest , SearchConnectionRequestDataWarehouseTypesEnum , SearchConnectionRequestDataWarehouseObjectTypeEnum , SearchConnectionRequestAuthenticationTypeEnum } from '../models/SearchConnectionRequest'; import { SearchConnectionRequestSortOptions, SearchConnectionRequestSortOptionsFieldNameEnum , SearchConnectionRequestSortOptionsOrderEnum } from '../models/SearchConnectionRequestSortOptions'; @@ -572,8 +674,14 @@ import { SearchUserGroupsRequest , SearchUserGroupsRequestPrivilegesEnum import { SearchUserGroupsRequestSortOptions, SearchUserGroupsRequestSortOptionsFieldNameEnum , SearchUserGroupsRequestSortOptionsOrderEnum } from '../models/SearchUserGroupsRequestSortOptions'; import { SearchUsersRequest , SearchUsersRequestVisibilityEnum , SearchUsersRequestPrivilegesEnum , SearchUsersRequestAccountTypeEnum , SearchUsersRequestAccountStatusEnum } from '../models/SearchUsersRequest'; import { SearchUsersRequestSortOptions, SearchUsersRequestSortOptionsFieldNameEnum , SearchUsersRequestSortOptionsOrderEnum } from '../models/SearchUsersRequestSortOptions'; -import { SearchVariablesRequest , SearchVariablesRequestOutputFormatEnum } from '../models/SearchVariablesRequest'; +import { SearchVariablesRequest , SearchVariablesRequestResponseContentEnum } from '../models/SearchVariablesRequest'; +import { SearchWebhookConfigurationsRequest , SearchWebhookConfigurationsRequestEventTypeEnum } from '../models/SearchWebhookConfigurationsRequest'; +import { SearchWebhookConfigurationsRequestSortOptions, SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum , SearchWebhookConfigurationsRequestSortOptionsOrderEnum } from '../models/SearchWebhookConfigurationsRequestSortOptions'; +import { SendAgentMessageRequest } from '../models/SendAgentMessageRequest'; +import { SendAgentMessageResponse } from '../models/SendAgentMessageResponse'; +import { SendAgentMessageStreamingRequest } from '../models/SendAgentMessageStreamingRequest'; import { SendMessageRequest } from '../models/SendMessageRequest'; +import { SetNLInstructionsRequest } from '../models/SetNLInstructionsRequest'; import { ShareMetadataRequest, ShareMetadataRequestMetadataTypeEnum } from '../models/ShareMetadataRequest'; import { ShareMetadataTypeInput, ShareMetadataTypeInputTypeEnum } from '../models/ShareMetadataTypeInput'; import { SharePermissionsInput , SharePermissionsInputShareModeEnum } from '../models/SharePermissionsInput'; @@ -624,9 +732,10 @@ import { UpdateSystemConfigRequest } from '../models/UpdateSystemConfigRequest'; import { UpdateTagRequest } from '../models/UpdateTagRequest'; import { UpdateUserGroupRequest , UpdateUserGroupRequestPrivilegesEnum , UpdateUserGroupRequestTypeEnum , UpdateUserGroupRequestVisibilityEnum , UpdateUserGroupRequestOperationEnum } from '../models/UpdateUserGroupRequest'; import { UpdateUserRequest , UpdateUserRequestVisibilityEnum , UpdateUserRequestAccountStatusEnum , UpdateUserRequestAccountTypeEnum , UpdateUserRequestOperationEnum , UpdateUserRequestPreferredLocaleEnum } from '../models/UpdateUserRequest'; -import { UpdateVariableRequest , UpdateVariableRequestOperationEnum } from '../models/UpdateVariableRequest'; -import { UpdateVariableValuesRequest , UpdateVariableValuesRequestOperationEnum } from '../models/UpdateVariableValuesRequest'; -import { User , UserVisibilityEnum , UserAccountTypeEnum , UserAccountStatusEnum , UserParentTypeEnum } from '../models/User'; +import { UpdateVariableRequest } from '../models/UpdateVariableRequest'; +import { UpdateVariableValuesRequest } from '../models/UpdateVariableValuesRequest'; +import { UpdateWebhookConfigurationRequest , UpdateWebhookConfigurationRequestEventsEnum } from '../models/UpdateWebhookConfigurationRequest'; +import { User , UserVisibilityEnum , UserAccountTypeEnum , UserAccountStatusEnum , UserParentTypeEnum } from '../models/User'; import { UserGroup } from '../models/UserGroup'; import { UserGroupResponse , UserGroupResponseParentTypeEnum , UserGroupResponseTypeEnum , UserGroupResponseVisibilityEnum } from '../models/UserGroupResponse'; import { UserInfo } from '../models/UserInfo'; @@ -635,10 +744,31 @@ import { UserParameterOptions } from '../models/UserParameterOptions'; import { UserPrincipal } from '../models/UserPrincipal'; import { ValidateMergeRequest } from '../models/ValidateMergeRequest'; import { ValidateTokenRequest } from '../models/ValidateTokenRequest'; +import { ValueScopeInput , ValueScopeInputPrincipalTypeEnum } from '../models/ValueScopeInput'; import { Variable , VariableVariableTypeEnum } from '../models/Variable'; import { VariableDetailInput , VariableDetailInputTypeEnum } from '../models/VariableDetailInput'; -import { VariableValue , VariableValuePrincipalTypeEnum } from '../models/VariableValue'; -import { VariableValueInput } from '../models/VariableValueInput'; +import { VariableUpdateAssignmentInput , VariableUpdateAssignmentInputOperationEnum } from '../models/VariableUpdateAssignmentInput'; +import { VariableUpdateScopeInput , VariableUpdateScopeInputPrincipalTypeEnum } from '../models/VariableUpdateScopeInput'; +import { VariableValue , VariableValuePrincipalTypeEnum } from '../models/VariableValue'; +import { VariableValues } from '../models/VariableValues'; +import { WebhookAuthApiKey } from '../models/WebhookAuthApiKey'; +import { WebhookAuthApiKeyInput } from '../models/WebhookAuthApiKeyInput'; +import { WebhookAuthBasicAuth } from '../models/WebhookAuthBasicAuth'; +import { WebhookAuthBasicAuthInput } from '../models/WebhookAuthBasicAuthInput'; +import { WebhookAuthOAuth2 } from '../models/WebhookAuthOAuth2'; +import { WebhookAuthOAuth2Input } from '../models/WebhookAuthOAuth2Input'; +import { WebhookAuthentication } from '../models/WebhookAuthentication'; +import { WebhookAuthenticationInput } from '../models/WebhookAuthenticationInput'; +import { WebhookDeleteFailure } from '../models/WebhookDeleteFailure'; +import { WebhookDeleteResponse } from '../models/WebhookDeleteResponse'; +import { WebhookOrg } from '../models/WebhookOrg'; +import { WebhookPagination } from '../models/WebhookPagination'; +import { WebhookResponse , WebhookResponseEventsEnum } from '../models/WebhookResponse'; +import { WebhookSearchResponse } from '../models/WebhookSearchResponse'; +import { WebhookSignatureVerification, WebhookSignatureVerificationTypeEnum , WebhookSignatureVerificationAlgorithmEnum } from '../models/WebhookSignatureVerification'; +import { WebhookSignatureVerificationInput, WebhookSignatureVerificationInputTypeEnum , WebhookSignatureVerificationInputAlgorithmEnum } from '../models/WebhookSignatureVerificationInput'; +import { WebhookSortOptionsInput, WebhookSortOptionsInputFieldNameEnum , WebhookSortOptionsInputOrderEnum } from '../models/WebhookSortOptionsInput'; +import { WebhookUser } from '../models/WebhookUser'; /* tslint:disable:no-unused-variable */ let primitives = [ @@ -670,7 +800,9 @@ let enumsMap: Set = new Set([ "ConnectionConfigurationResponseDataWarehouseTypeEnum", "ConnectionConfigurationResponsePolicyTypeEnum", "ConnectionConfigurationSearchRequestPolicyTypeEnum", + "ContextPayloadV2InputTypeEnum", "CopyObjectRequestTypeEnum", + "CreateAgentConversationRequestMetadataContextTypeEnum", "CreateCalendarRequestCreationMethodEnum", "CreateCalendarRequestCalendarTypeEnum", "CreateCalendarRequestMonthOffsetEnum", @@ -693,10 +825,18 @@ let enumsMap: Set = new Set([ "CreateUserRequestVisibilityEnum", "CreateUserRequestPreferredLocaleEnum", "CreateVariableRequestTypeEnum", + "CreateVariableRequestDataTypeEnum", + "CreateWebhookConfigurationRequestEventsEnum", + "CreateWebhookConfigurationRequestSignatureVerificationTypeEnum", + "CreateWebhookConfigurationRequestSignatureVerificationAlgorithmEnum", "CustomActionMetadataTypeInputTypeEnum", "DeleteMetadataTypeInputTypeEnum", "DeployCommitRequestDeployTypeEnum", "DeployCommitRequestDeployPolicyEnum", + "EventChannelConfigEventTypeEnum", + "EventChannelConfigChannelsEnum", + "EventChannelConfigInputEventTypeEnum", + "EventChannelConfigInputChannelsEnum", "ExcludeMetadataListItemInputTypeEnum", "ExportAnswerReportRequestFileFormatEnum", "ExportAnswerReportRequestRegionalSettingsCurrencyFormatEnum", @@ -733,7 +873,6 @@ let enumsMap: Set = new Set([ "ImportUserAccountTypeEnum", "ImportUserAccountStatusEnum", "ImportUserVisibilityEnum", - "InputVariableValuePrincipalTypeEnum", "JWTMetadataObjectTypeEnum", "MetadataInputTypeEnum", "MetadataListItemInputTypeEnum", @@ -743,6 +882,11 @@ let enumsMap: Set = new Set([ "MetadataSearchResponseMetadataTypeEnum", "MetadataSearchSortOptionsFieldNameEnum", "MetadataSearchSortOptionsOrderEnum", + "NLInstructionsInfoScopeEnum", + "NLInstructionsInfoInputScopeEnum", + "OrgChannelConfigInputOperationEnum", + "OrgChannelConfigInputResetEventsEnum", + "OrgPreferenceSearchCriteriaInputEventTypesEnum", "OrgResponseStatusEnum", "OrgResponseVisibilityEnum", "ParameterizeMetadataRequestMetadataTypeEnum", @@ -768,6 +912,7 @@ let enumsMap: Set = new Set([ "SearchCalendarsRequestSortOptionsFieldNameEnum", "SearchCalendarsRequestSortOptionsOrderEnum", "SearchCommitsRequestMetadataTypeEnum", + "SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum", "SearchConnectionRequestDataWarehouseTypesEnum", "SearchConnectionRequestDataWarehouseObjectTypeEnum", "SearchConnectionRequestAuthenticationTypeEnum", @@ -797,7 +942,10 @@ let enumsMap: Set = new Set([ "SearchUsersRequestAccountStatusEnum", "SearchUsersRequestSortOptionsFieldNameEnum", "SearchUsersRequestSortOptionsOrderEnum", - "SearchVariablesRequestOutputFormatEnum", + "SearchVariablesRequestResponseContentEnum", + "SearchWebhookConfigurationsRequestEventTypeEnum", + "SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum", + "SearchWebhookConfigurationsRequestSortOptionsOrderEnum", "ShareMetadataRequestMetadataTypeEnum", "ShareMetadataTypeInputTypeEnum", "SharePermissionsInputShareModeEnum", @@ -837,8 +985,7 @@ let enumsMap: Set = new Set([ "UpdateUserRequestAccountTypeEnum", "UpdateUserRequestOperationEnum", "UpdateUserRequestPreferredLocaleEnum", - "UpdateVariableRequestOperationEnum", - "UpdateVariableValuesRequestOperationEnum", + "UpdateWebhookConfigurationRequestEventsEnum", "UserVisibilityEnum", "UserAccountTypeEnum", "UserAccountStatusEnum", @@ -847,12 +994,23 @@ let enumsMap: Set = new Set([ "UserGroupResponseTypeEnum", "UserGroupResponseVisibilityEnum", "UserObjectTypeEnum", + "ValueScopeInputPrincipalTypeEnum", "VariableVariableTypeEnum", "VariableDetailInputTypeEnum", + "VariableUpdateAssignmentInputOperationEnum", + "VariableUpdateScopeInputPrincipalTypeEnum", "VariableValuePrincipalTypeEnum", + "WebhookResponseEventsEnum", + "WebhookSignatureVerificationTypeEnum", + "WebhookSignatureVerificationAlgorithmEnum", + "WebhookSignatureVerificationInputTypeEnum", + "WebhookSignatureVerificationInputAlgorithmEnum", + "WebhookSortOptionsInputFieldNameEnum", + "WebhookSortOptionsInputOrderEnum", ]); let typeMap: {[index: string]: any} = { + "AIContext": AIContext, "APIKey": APIKey, "APIKeyInput": APIKeyInput, "AccessToken": AccessToken, @@ -863,7 +1021,9 @@ let typeMap: {[index: string]: any} = { "ActionDetailsInput": ActionDetailsInput, "ActionDetailsInputCreate": ActionDetailsInputCreate, "ActivateUserRequest": ActivateUserRequest, + "AgentConversation": AgentConversation, "AnswerContent": AnswerContent, + "AnswerContextInput": AnswerContextInput, "AnswerDataResponse": AnswerDataResponse, "AssignChangeAuthorRequest": AssignChangeAuthorRequest, "AssignTagRequest": AssignTagRequest, @@ -895,12 +1055,19 @@ let typeMap: {[index: string]: any} = { "CommitHistoryResponse": CommitHistoryResponse, "CommitResponse": CommitResponse, "CommiterType": CommiterType, + "CommunicationChannelPreferencesResponse": CommunicationChannelPreferencesResponse, + "ConfigureCommunicationChannelPreferencesRequest": ConfigureCommunicationChannelPreferencesRequest, "ConnectionConfigurationResponse": ConnectionConfigurationResponse, "ConnectionConfigurationSearchRequest": ConnectionConfigurationSearchRequest, "ConnectionInput": ConnectionInput, + "ContextPayloadV2Input": ContextPayloadV2Input, "Conversation": Conversation, + "ConversationSettingsInput": ConversationSettingsInput, "ConvertWorksheetToModelRequest": ConvertWorksheetToModelRequest, "CopyObjectRequest": CopyObjectRequest, + "CreateAgentConversationRequest": CreateAgentConversationRequest, + "CreateAgentConversationRequestConversationSettings": CreateAgentConversationRequestConversationSettings, + "CreateAgentConversationRequestMetadataContext": CreateAgentConversationRequestMetadataContext, "CreateCalendarRequest": CreateCalendarRequest, "CreateCalendarRequestTableReference": CreateCalendarRequestTableReference, "CreateConfigRequest": CreateConfigRequest, @@ -925,9 +1092,14 @@ let typeMap: {[index: string]: any} = { "CreateUserGroupRequest": CreateUserGroupRequest, "CreateUserRequest": CreateUserRequest, "CreateVariableRequest": CreateVariableRequest, + "CreateWebhookConfigurationRequest": CreateWebhookConfigurationRequest, + "CreateWebhookConfigurationRequestAuthentication": CreateWebhookConfigurationRequestAuthentication, + "CreateWebhookConfigurationRequestSignatureVerification": CreateWebhookConfigurationRequestSignatureVerification, "CronExpression": CronExpression, "CronExpressionInput": CronExpressionInput, "CustomActionMetadataTypeInput": CustomActionMetadataTypeInput, + "DataSource": DataSource, + "DataSourceContextInput": DataSourceContextInput, "DataWarehouseObjectInput": DataWarehouseObjectInput, "DataWarehouseObjects": DataWarehouseObjects, "Database": Database, @@ -943,12 +1115,21 @@ let typeMap: {[index: string]: any} = { "DeleteMetadataRequest": DeleteMetadataRequest, "DeleteMetadataTypeInput": DeleteMetadataTypeInput, "DeleteOrgEmailCustomizationRequest": DeleteOrgEmailCustomizationRequest, + "DeleteWebhookConfigurationsRequest": DeleteWebhookConfigurationsRequest, "DeployCommitRequest": DeployCommitRequest, "DeployResponse": DeployResponse, + "EntityHeader": EntityHeader, "ErrorResponse": ErrorResponse, + "EurekaDataSourceSuggestionResponse": EurekaDataSourceSuggestionResponse, "EurekaDecomposeQueryResponse": EurekaDecomposeQueryResponse, + "EurekaGetNLInstructionsResponse": EurekaGetNLInstructionsResponse, + "EurekaGetRelevantQuestionsResponse": EurekaGetRelevantQuestionsResponse, "EurekaLLMDecomposeQueryResponse": EurekaLLMDecomposeQueryResponse, "EurekaLLMSuggestedQuery": EurekaLLMSuggestedQuery, + "EurekaRelevantQuestion": EurekaRelevantQuestion, + "EurekaSetNLInstructionsResponse": EurekaSetNLInstructionsResponse, + "EventChannelConfig": EventChannelConfig, + "EventChannelConfigInput": EventChannelConfigInput, "ExcludeMetadataListItemInput": ExcludeMetadataListItemInput, "ExportAnswerReportRequest": ExportAnswerReportRequest, "ExportAnswerReportRequestRegionalSettings": ExportAnswerReportRequestRegionalSettings, @@ -982,9 +1163,14 @@ let typeMap: {[index: string]: any} = { "GenericInfo": GenericInfo, "GetAsyncImportStatusResponse": GetAsyncImportStatusResponse, "GetCustomAccessTokenRequest": GetCustomAccessTokenRequest, + "GetDataSourceSuggestionsRequest": GetDataSourceSuggestionsRequest, "GetFullAccessTokenRequest": GetFullAccessTokenRequest, "GetFullAccessTokenRequestUserParameters": GetFullAccessTokenRequestUserParameters, + "GetNLInstructionsRequest": GetNLInstructionsRequest, "GetObjectAccessTokenRequest": GetObjectAccessTokenRequest, + "GetRelevantQuestionsRequest": GetRelevantQuestionsRequest, + "GetRelevantQuestionsRequestAiContext": GetRelevantQuestionsRequestAiContext, + "GetRelevantQuestionsRequestMetadataContext": GetRelevantQuestionsRequestMetadataContext, "GetTokenResponse": GetTokenResponse, "GroupObject": GroupObject, "GroupsImportListInput": GroupsImportListInput, @@ -1000,11 +1186,11 @@ let typeMap: {[index: string]: any} = { "ImportUsersRequest": ImportUsersRequest, "ImportUsersResponse": ImportUsersResponse, "InputEurekaNLSRequest": InputEurekaNLSRequest, - "InputVariableValue": InputVariableValue, "JWTMetadataObject": JWTMetadataObject, "JWTParameter": JWTParameter, "JWTUserOptions": JWTUserOptions, "JWTUserOptionsFull": JWTUserOptionsFull, + "LBContextInput": LBContextInput, "LiveboardContent": LiveboardContent, "LiveboardDataResponse": LiveboardDataResponse, "LiveboardOptions": LiveboardOptions, @@ -1012,6 +1198,7 @@ let typeMap: {[index: string]: any} = { "LogResponse": LogResponse, "LoginRequest": LoginRequest, "MetadataAssociationItem": MetadataAssociationItem, + "MetadataContext": MetadataContext, "MetadataInput": MetadataInput, "MetadataListItemInput": MetadataListItemInput, "MetadataObject": MetadataObject, @@ -1019,9 +1206,15 @@ let typeMap: {[index: string]: any} = { "MetadataSearchResponse": MetadataSearchResponse, "MetadataSearchSortOptions": MetadataSearchSortOptions, "ModelTableList": ModelTableList, + "NLInstructionsInfo": NLInstructionsInfo, + "NLInstructionsInfoInput": NLInstructionsInfoInput, "ObjectIDAndName": ObjectIDAndName, "Org": Org, + "OrgChannelConfigInput": OrgChannelConfigInput, + "OrgChannelConfigResponse": OrgChannelConfigResponse, + "OrgDetails": OrgDetails, "OrgInfo": OrgInfo, + "OrgPreferenceSearchCriteriaInput": OrgPreferenceSearchCriteriaInput, "OrgResponse": OrgResponse, "OrgType": OrgType, "ParameterValues": ParameterValues, @@ -1083,6 +1276,7 @@ let typeMap: {[index: string]: any} = { "SearchCalendarsRequest": SearchCalendarsRequest, "SearchCalendarsRequestSortOptions": SearchCalendarsRequestSortOptions, "SearchCommitsRequest": SearchCommitsRequest, + "SearchCommunicationChannelPreferencesRequest": SearchCommunicationChannelPreferencesRequest, "SearchConfigRequest": SearchConfigRequest, "SearchConnectionRequest": SearchConnectionRequest, "SearchConnectionRequestSortOptions": SearchConnectionRequestSortOptions, @@ -1107,7 +1301,13 @@ let typeMap: {[index: string]: any} = { "SearchUsersRequest": SearchUsersRequest, "SearchUsersRequestSortOptions": SearchUsersRequestSortOptions, "SearchVariablesRequest": SearchVariablesRequest, + "SearchWebhookConfigurationsRequest": SearchWebhookConfigurationsRequest, + "SearchWebhookConfigurationsRequestSortOptions": SearchWebhookConfigurationsRequestSortOptions, + "SendAgentMessageRequest": SendAgentMessageRequest, + "SendAgentMessageResponse": SendAgentMessageResponse, + "SendAgentMessageStreamingRequest": SendAgentMessageStreamingRequest, "SendMessageRequest": SendMessageRequest, + "SetNLInstructionsRequest": SetNLInstructionsRequest, "ShareMetadataRequest": ShareMetadataRequest, "ShareMetadataTypeInput": ShareMetadataTypeInput, "SharePermissionsInput": SharePermissionsInput, @@ -1160,6 +1360,7 @@ let typeMap: {[index: string]: any} = { "UpdateUserRequest": UpdateUserRequest, "UpdateVariableRequest": UpdateVariableRequest, "UpdateVariableValuesRequest": UpdateVariableValuesRequest, + "UpdateWebhookConfigurationRequest": UpdateWebhookConfigurationRequest, "User": User, "UserGroup": UserGroup, "UserGroupResponse": UserGroupResponse, @@ -1169,10 +1370,31 @@ let typeMap: {[index: string]: any} = { "UserPrincipal": UserPrincipal, "ValidateMergeRequest": ValidateMergeRequest, "ValidateTokenRequest": ValidateTokenRequest, + "ValueScopeInput": ValueScopeInput, "Variable": Variable, "VariableDetailInput": VariableDetailInput, + "VariableUpdateAssignmentInput": VariableUpdateAssignmentInput, + "VariableUpdateScopeInput": VariableUpdateScopeInput, "VariableValue": VariableValue, - "VariableValueInput": VariableValueInput, + "VariableValues": VariableValues, + "WebhookAuthApiKey": WebhookAuthApiKey, + "WebhookAuthApiKeyInput": WebhookAuthApiKeyInput, + "WebhookAuthBasicAuth": WebhookAuthBasicAuth, + "WebhookAuthBasicAuthInput": WebhookAuthBasicAuthInput, + "WebhookAuthOAuth2": WebhookAuthOAuth2, + "WebhookAuthOAuth2Input": WebhookAuthOAuth2Input, + "WebhookAuthentication": WebhookAuthentication, + "WebhookAuthenticationInput": WebhookAuthenticationInput, + "WebhookDeleteFailure": WebhookDeleteFailure, + "WebhookDeleteResponse": WebhookDeleteResponse, + "WebhookOrg": WebhookOrg, + "WebhookPagination": WebhookPagination, + "WebhookResponse": WebhookResponse, + "WebhookSearchResponse": WebhookSearchResponse, + "WebhookSignatureVerification": WebhookSignatureVerification, + "WebhookSignatureVerificationInput": WebhookSignatureVerificationInput, + "WebhookSortOptionsInput": WebhookSortOptionsInput, + "WebhookUser": WebhookUser, } export class ObjectSerializer { diff --git a/sdks/typescript/models/OrgChannelConfigInput.ts b/sdks/typescript/models/OrgChannelConfigInput.ts new file mode 100644 index 000000000..85fe76d15 --- /dev/null +++ b/sdks/typescript/models/OrgChannelConfigInput.ts @@ -0,0 +1,73 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { EventChannelConfigInput } from '../models/EventChannelConfigInput'; +import { HttpFile } from '../http/http'; + +export class OrgChannelConfigInput { + /** + * Unique identifier or name of the org + */ + 'org_identifier': string; + /** + * Operation to perform. REPLACE: Update preferences (default). RESET: Remove org-specific configurations, causing fallback to cluster-level preferences. + */ + 'operation'?: OrgChannelConfigInputOperationEnum | null; + /** + * Event-specific configurations. Required for REPLACE operation. + */ + 'preferences'?: Array | null; + /** + * Event types to reset. Required for RESET operation. Org-specific configurations for these events will be removed, causing fallback to cluster-level preferences. + */ + 'reset_events'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "operation", + "baseName": "operation", + "type": "OrgChannelConfigInputOperationEnum", + "format": "" + }, + { + "name": "preferences", + "baseName": "preferences", + "type": "Array", + "format": "" + }, + { + "name": "reset_events", + "baseName": "reset_events", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return OrgChannelConfigInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type OrgChannelConfigInputOperationEnum = "REPLACE" | "RESET" ; +export type OrgChannelConfigInputResetEventsEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/OrgChannelConfigResponse.ts b/sdks/typescript/models/OrgChannelConfigResponse.ts new file mode 100644 index 000000000..6519119ce --- /dev/null +++ b/sdks/typescript/models/OrgChannelConfigResponse.ts @@ -0,0 +1,47 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { EventChannelConfig } from '../models/EventChannelConfig'; +import { OrgDetails } from '../models/OrgDetails'; +import { HttpFile } from '../http/http'; + +export class OrgChannelConfigResponse { + 'org': OrgDetails; + /** + * Event-specific communication channel configurations for this org + */ + 'preferences': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "org", + "baseName": "org", + "type": "OrgDetails", + "format": "" + }, + { + "name": "preferences", + "baseName": "preferences", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return OrgChannelConfigResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/OrgDetails.ts b/sdks/typescript/models/OrgDetails.ts new file mode 100644 index 000000000..56afe019a --- /dev/null +++ b/sdks/typescript/models/OrgDetails.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class OrgDetails { + /** + * Unique id of the org + */ + 'id': string; + /** + * Name of the org + */ + 'name': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return OrgDetails.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/OrgPreferenceSearchCriteriaInput.ts b/sdks/typescript/models/OrgPreferenceSearchCriteriaInput.ts new file mode 100644 index 000000000..33927a3a0 --- /dev/null +++ b/sdks/typescript/models/OrgPreferenceSearchCriteriaInput.ts @@ -0,0 +1,51 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class OrgPreferenceSearchCriteriaInput { + /** + * Unique identifier or name of the org + */ + 'org_identifier': string; + /** + * Event types to search for. If not provided, all event types for this org are returned. + */ + 'event_types'?: Array | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "event_types", + "baseName": "event_types", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return OrgPreferenceSearchCriteriaInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type OrgPreferenceSearchCriteriaInputEventTypesEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/RoleResponse.ts b/sdks/typescript/models/RoleResponse.ts index bb10aeac0..8859deb5d 100644 --- a/sdks/typescript/models/RoleResponse.ts +++ b/sdks/typescript/models/RoleResponse.ts @@ -198,6 +198,6 @@ export class RoleResponse { } -export type RoleResponsePrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" ; +export type RoleResponsePrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MANAGE_VARIABLES" | "CAN_MODIFY_FOLDERS" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; export type RoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS" ; diff --git a/sdks/typescript/models/SearchCommunicationChannelPreferencesRequest.ts b/sdks/typescript/models/SearchCommunicationChannelPreferencesRequest.ts new file mode 100644 index 000000000..a8d8ce715 --- /dev/null +++ b/sdks/typescript/models/SearchCommunicationChannelPreferencesRequest.ts @@ -0,0 +1,52 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { OrgPreferenceSearchCriteriaInput } from '../models/OrgPreferenceSearchCriteriaInput'; +import { HttpFile } from '../http/http'; + +export class SearchCommunicationChannelPreferencesRequest { + /** + * Event types to search for in cluster-level preferences. + */ + 'cluster_preferences'?: Array; + /** + * Org-specific search criteria. + */ + 'org_preferences'?: Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "cluster_preferences", + "baseName": "cluster_preferences", + "type": "Array", + "format": "" + }, + { + "name": "org_preferences", + "baseName": "org_preferences", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SearchCommunicationChannelPreferencesRequest.attributeTypeMap; + } + + public constructor() { + } +} + + +export type SearchCommunicationChannelPreferencesRequestClusterPreferencesEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/SearchConnectionRequest.ts b/sdks/typescript/models/SearchConnectionRequest.ts index d1054e844..95e99166b 100644 --- a/sdks/typescript/models/SearchConnectionRequest.ts +++ b/sdks/typescript/models/SearchConnectionRequest.ts @@ -138,5 +138,5 @@ export class SearchConnectionRequest { export type SearchConnectionRequestDataWarehouseTypesEnum = "SNOWFLAKE" | "AMAZON_REDSHIFT" | "GOOGLE_BIGQUERY" | "AZURE_SYNAPSE" | "TERADATA" | "SAP_HANA" | "STARBURST" | "ORACLE_ADW" | "DATABRICKS" | "DENODO" | "DREMIO" | "TRINO" | "PRESTO" | "POSTGRES" | "SQLSERVER" | "MYSQL" | "GENERIC_JDBC" | "AMAZON_RDS_POSTGRESQL" | "AMAZON_AURORA_POSTGRESQL" | "AMAZON_RDS_MYSQL" | "AMAZON_AURORA_MYSQL" | "LOOKER" | "AMAZON_ATHENA" | "SINGLESTORE" | "GCP_SQLSERVER" | "GCP_ALLOYDB_POSTGRESQL" | "GCP_POSTGRESQL" | "GCP_MYSQL" | "MODE" | "GOOGLE_SHEETS" | "FALCON" | "FALCON_ONPREM" | "CLICKHOUSE" ; export type SearchConnectionRequestDataWarehouseObjectTypeEnum = "DATABASE" | "SCHEMA" | "TABLE" | "COLUMN" ; -export type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "IAM" | "EXTOAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "PERSONAL_ACCESS_TOKEN" | "KEY_PAIR" | "OAUTH_WITH_PKCE" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PEZ" ; +export type SearchConnectionRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "IAM" | "EXTOAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "PERSONAL_ACCESS_TOKEN" | "KEY_PAIR" | "OAUTH_WITH_PKCE" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PEZ" | "OAUTH_CLIENT_CREDENTIALS" ; diff --git a/sdks/typescript/models/SearchRoleResponse.ts b/sdks/typescript/models/SearchRoleResponse.ts index ce09b27e6..71bc207ae 100644 --- a/sdks/typescript/models/SearchRoleResponse.ts +++ b/sdks/typescript/models/SearchRoleResponse.ts @@ -201,6 +201,6 @@ export class SearchRoleResponse { } -export type SearchRoleResponsePrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; +export type SearchRoleResponsePrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_VIEW_FOLDERS" | "CAN_MODIDY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; export type SearchRoleResponsePermissionEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS" ; diff --git a/sdks/typescript/models/SearchRolesRequest.ts b/sdks/typescript/models/SearchRolesRequest.ts index ffa938641..22802aa04 100644 --- a/sdks/typescript/models/SearchRolesRequest.ts +++ b/sdks/typescript/models/SearchRolesRequest.ts @@ -107,6 +107,6 @@ export class SearchRolesRequest { } -export type SearchRolesRequestPrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; +export type SearchRolesRequestPrivilegesEnum = "UNKNOWN" | "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "SECURITYMANAGEMENT" | "LOGICALMODELING" | "DATAMANAGEMENT" | "TAGMANAGEMENT" | "SHAREWITHALL" | "SYSTEMMANAGEMENT" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "BACKUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ENABLESPOTAPPCREATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "PREVIEW_THOUGHTSPOT_SAGE" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_CONFIGURE_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CONTROL_TRUSTED_AUTH" | "CAN_CREATE_CATALOG" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_VIEW_FOLDERS" | "CAN_MODIDY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; export type SearchRolesRequestPermissionsEnum = "READ_ONLY" | "MODIFY" | "NO_ACCESS" ; diff --git a/sdks/typescript/models/SearchUserGroupsRequest.ts b/sdks/typescript/models/SearchUserGroupsRequest.ts index 36c5f63fa..2663e1b98 100644 --- a/sdks/typescript/models/SearchUserGroupsRequest.ts +++ b/sdks/typescript/models/SearchUserGroupsRequest.ts @@ -195,7 +195,7 @@ export class SearchUserGroupsRequest { } -export type SearchUserGroupsRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; -export type SearchUserGroupsRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" ; +export type SearchUserGroupsRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; +export type SearchUserGroupsRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP" ; export type SearchUserGroupsRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE" ; diff --git a/sdks/typescript/models/SearchUsersRequest.ts b/sdks/typescript/models/SearchUsersRequest.ts index f15a4d8b5..74e91e8a9 100644 --- a/sdks/typescript/models/SearchUsersRequest.ts +++ b/sdks/typescript/models/SearchUsersRequest.ts @@ -227,7 +227,7 @@ export class SearchUsersRequest { export type SearchUsersRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE" ; -export type SearchUsersRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; +export type SearchUsersRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "APPLICATION_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "CAN_SETUP_VERSION_CONTROL" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; export type SearchUsersRequestAccountTypeEnum = "LOCAL_USER" | "LDAP_USER" | "SAML_USER" | "OIDC_USER" | "REMOTE_USER" ; export type SearchUsersRequestAccountStatusEnum = "ACTIVE" | "INACTIVE" | "EXPIRED" | "LOCKED" | "PENDING" | "SUSPENDED" ; diff --git a/sdks/typescript/models/SearchVariablesRequest.ts b/sdks/typescript/models/SearchVariablesRequest.ts index fadb98cfc..c4836e4a2 100644 --- a/sdks/typescript/models/SearchVariablesRequest.ts +++ b/sdks/typescript/models/SearchVariablesRequest.ts @@ -10,6 +10,7 @@ * Do not edit the class manually. */ +import { ValueScopeInput } from '../models/ValueScopeInput'; import { VariableDetailInput } from '../models/VariableDetailInput'; import { HttpFile } from '../http/http'; @@ -19,6 +20,10 @@ export class SearchVariablesRequest { */ 'variable_details'?: Array; /** + * Array of scope filters + */ + 'value_scope'?: Array; + /** * The starting record number from where the records should be included */ 'record_offset'?: number; @@ -29,7 +34,7 @@ export class SearchVariablesRequest { /** * Format in which we want the output */ - 'output_format'?: SearchVariablesRequestOutputFormatEnum; + 'response_content'?: SearchVariablesRequestResponseContentEnum; static readonly discriminator: string | undefined = undefined; @@ -40,6 +45,12 @@ export class SearchVariablesRequest { "type": "Array", "format": "" }, + { + "name": "value_scope", + "baseName": "value_scope", + "type": "Array", + "format": "" + }, { "name": "record_offset", "baseName": "record_offset", @@ -53,9 +64,9 @@ export class SearchVariablesRequest { "format": "int32" }, { - "name": "output_format", - "baseName": "output_format", - "type": "SearchVariablesRequestOutputFormatEnum", + "name": "response_content", + "baseName": "response_content", + "type": "SearchVariablesRequestResponseContentEnum", "format": "" } ]; @@ -68,5 +79,5 @@ export class SearchVariablesRequest { } -export type SearchVariablesRequestOutputFormatEnum = "METADATA_ONLY" | "METADATA_AND_VALUES" | "EDITABLE_METADATA_AND_VALUES" ; +export type SearchVariablesRequestResponseContentEnum = "METADATA" | "METADATA_AND_VALUES" ; diff --git a/sdks/typescript/models/SearchWebhookConfigurationsRequest.ts b/sdks/typescript/models/SearchWebhookConfigurationsRequest.ts new file mode 100644 index 000000000..9ca2aa84e --- /dev/null +++ b/sdks/typescript/models/SearchWebhookConfigurationsRequest.ts @@ -0,0 +1,89 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { SearchWebhookConfigurationsRequestSortOptions } from '../models/SearchWebhookConfigurationsRequestSortOptions'; +import { HttpFile } from '../http/http'; + +export class SearchWebhookConfigurationsRequest { + /** + * Unique ID or name of the org. + */ + 'org_identifier'?: string; + /** + * Unique ID or name of the webhook. + */ + 'webhook_identifier'?: string; + /** + * Type of webhook event to filter by. + */ + 'event_type'?: SearchWebhookConfigurationsRequestEventTypeEnum; + /** + * The offset point, starting from where the webhooks should be included in the response. + */ + 'record_offset'?: number; + /** + * The number of webhooks that should be included in the response starting from offset position. + */ + 'record_size'?: number; + 'sort_options'?: SearchWebhookConfigurationsRequestSortOptions; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "webhook_identifier", + "baseName": "webhook_identifier", + "type": "string", + "format": "" + }, + { + "name": "event_type", + "baseName": "event_type", + "type": "SearchWebhookConfigurationsRequestEventTypeEnum", + "format": "" + }, + { + "name": "record_offset", + "baseName": "record_offset", + "type": "number", + "format": "int32" + }, + { + "name": "record_size", + "baseName": "record_size", + "type": "number", + "format": "int32" + }, + { + "name": "sort_options", + "baseName": "sort_options", + "type": "SearchWebhookConfigurationsRequestSortOptions", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SearchWebhookConfigurationsRequest.attributeTypeMap; + } + + public constructor() { + } +} + + +export type SearchWebhookConfigurationsRequestEventTypeEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/SearchWebhookConfigurationsRequestSortOptions.ts b/sdks/typescript/models/SearchWebhookConfigurationsRequestSortOptions.ts new file mode 100644 index 000000000..b63e1e451 --- /dev/null +++ b/sdks/typescript/models/SearchWebhookConfigurationsRequestSortOptions.ts @@ -0,0 +1,55 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* Sort option includes sort field and sort order. +*/ +export class SearchWebhookConfigurationsRequestSortOptions { + /** + * Name of the field to apply the sort on. + */ + 'field_name'?: SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum | null; + /** + * Sort order: ASC (Ascending) or DESC (Descending). + */ + 'order'?: SearchWebhookConfigurationsRequestSortOptionsOrderEnum | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "field_name", + "baseName": "field_name", + "type": "SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum", + "format": "" + }, + { + "name": "order", + "baseName": "order", + "type": "SearchWebhookConfigurationsRequestSortOptionsOrderEnum", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SearchWebhookConfigurationsRequestSortOptions.attributeTypeMap; + } + + public constructor() { + } +} + + +export type SearchWebhookConfigurationsRequestSortOptionsFieldNameEnum = "CREATED" | "MODIFIED" | "NAME" ; +export type SearchWebhookConfigurationsRequestSortOptionsOrderEnum = "ASC" | "DESC" ; + diff --git a/sdks/typescript/models/SendAgentMessageRequest.ts b/sdks/typescript/models/SendAgentMessageRequest.ts new file mode 100644 index 000000000..42eadd42b --- /dev/null +++ b/sdks/typescript/models/SendAgentMessageRequest.ts @@ -0,0 +1,38 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class SendAgentMessageRequest { + /** + * messages to be sent to the agent + */ + 'messages': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "messages", + "baseName": "messages", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SendAgentMessageRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/SendAgentMessageResponse.ts b/sdks/typescript/models/SendAgentMessageResponse.ts new file mode 100644 index 000000000..d57e859ef --- /dev/null +++ b/sdks/typescript/models/SendAgentMessageResponse.ts @@ -0,0 +1,42 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class SendAgentMessageResponse { + 'success': boolean; + 'message'?: string | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "success", + "baseName": "success", + "type": "boolean", + "format": "" + }, + { + "name": "message", + "baseName": "message", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SendAgentMessageResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/SendAgentMessageStreamingRequest.ts b/sdks/typescript/models/SendAgentMessageStreamingRequest.ts new file mode 100644 index 000000000..eae6f0582 --- /dev/null +++ b/sdks/typescript/models/SendAgentMessageStreamingRequest.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class SendAgentMessageStreamingRequest { + /** + * Unique identifier for the conversation (used to track context) + */ + 'conversation_identifier': string; + /** + * messages to be sent to the agent + */ + 'messages': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "conversation_identifier", + "baseName": "conversation_identifier", + "type": "string", + "format": "" + }, + { + "name": "messages", + "baseName": "messages", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SendAgentMessageStreamingRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/SetNLInstructionsRequest.ts b/sdks/typescript/models/SetNLInstructionsRequest.ts new file mode 100644 index 000000000..042767d1e --- /dev/null +++ b/sdks/typescript/models/SetNLInstructionsRequest.ts @@ -0,0 +1,49 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { NLInstructionsInfoInput } from '../models/NLInstructionsInfoInput'; +import { HttpFile } from '../http/http'; + +export class SetNLInstructionsRequest { + /** + * Unique ID or name of the data-model for which to set NL instructions. + */ + 'data_source_identifier': string; + /** + * List of NL instructions to set for the data-model. + */ + 'nl_instructions_info': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "data_source_identifier", + "baseName": "data_source_identifier", + "type": "string", + "format": "" + }, + { + "name": "nl_instructions_info", + "baseName": "nl_instructions_info", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return SetNLInstructionsRequest.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/TemplatePropertiesInputCreate.ts b/sdks/typescript/models/TemplatePropertiesInputCreate.ts index ee7c4b862..3094e1e70 100644 --- a/sdks/typescript/models/TemplatePropertiesInputCreate.ts +++ b/sdks/typescript/models/TemplatePropertiesInputCreate.ts @@ -108,6 +108,14 @@ export class TemplatePropertiesInputCreate { * Whether to hide modify alert */ 'hide_modify_alert'?: boolean | null; + /** + * Company privacy policy URL (HTTP/HTTPS only) + */ + 'company_privacy_policy_url'?: string | null; + /** + * Company website URL (HTTP/HTTPS only) + */ + 'company_website_url'?: string | null; static readonly discriminator: string | undefined = undefined; @@ -249,6 +257,18 @@ export class TemplatePropertiesInputCreate { "baseName": "hide_modify_alert", "type": "boolean", "format": "" + }, + { + "name": "company_privacy_policy_url", + "baseName": "company_privacy_policy_url", + "type": "string", + "format": "" + }, + { + "name": "company_website_url", + "baseName": "company_website_url", + "type": "string", + "format": "" } ]; static getAttributeTypeMap() { diff --git a/sdks/typescript/models/TokenAccessScopeObject.ts b/sdks/typescript/models/TokenAccessScopeObject.ts index c6a5437e8..fee4693fa 100644 --- a/sdks/typescript/models/TokenAccessScopeObject.ts +++ b/sdks/typescript/models/TokenAccessScopeObject.ts @@ -17,7 +17,7 @@ import { HttpFile } from '../http/http'; */ export class TokenAccessScopeObject { /** - * 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. + * 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`. */ 'type'?: TokenAccessScopeObjectTypeEnum | null; /** diff --git a/sdks/typescript/models/UpdateConnectionConfigurationRequest.ts b/sdks/typescript/models/UpdateConnectionConfigurationRequest.ts index 479531650..b566824ce 100644 --- a/sdks/typescript/models/UpdateConnectionConfigurationRequest.ts +++ b/sdks/typescript/models/UpdateConnectionConfigurationRequest.ts @@ -117,7 +117,7 @@ export class UpdateConnectionConfigurationRequest { } -export type UpdateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "EXTOAUTH" | "KEY_PAIR" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PKCE" | "PERSONAL_ACCESS_TOKEN" ; +export type UpdateConnectionConfigurationRequestAuthenticationTypeEnum = "SERVICE_ACCOUNT" | "OAUTH" | "OAUTH_WITH_SERVICE_PRINCIPAL" | "EXTOAUTH" | "KEY_PAIR" | "EXTOAUTH_WITH_PKCE" | "OAUTH_WITH_PKCE" | "PERSONAL_ACCESS_TOKEN" | "OAUTH_CLIENT_CREDENTIALS" ; export type UpdateConnectionConfigurationRequestPolicyTypeEnum = "NO_POLICY" | "PRINCIPALS" | "PROCESSES" ; export type UpdateConnectionConfigurationRequestPolicyProcessesEnum = "SAGE_INDEXING" | "ROW_COUNT_STATS" ; diff --git a/sdks/typescript/models/UpdateDbtConnectionRequest.ts b/sdks/typescript/models/UpdateDbtConnectionRequest.ts deleted file mode 100644 index 4b947c177..000000000 --- a/sdks/typescript/models/UpdateDbtConnectionRequest.ts +++ /dev/null @@ -1,141 +0,0 @@ -/** - * ThoughtSpot Public REST API - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * OpenAPI spec version: 2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { HttpFile } from '../http/http'; - -export class UpdateDbtConnectionRequest { - /** - * Unique ID of the DBT Connection. - */ - 'dbt_connection_identifier': string; - /** - * Name of the connection. - */ - 'connection_name'?: string; - /** - * Name of the Database. - */ - 'database_name'?: string; - /** - * Mention type of Import - */ - 'import_type'?: UpdateDbtConnectionRequestImportTypeEnum; - /** - * Access token is mandatory when Import_Type is DBT_CLOUD. - */ - 'access_token'?: string; - /** - * DBT URL is mandatory when Import_Type is DBT_CLOUD. - */ - 'dbt_url'?: string; - /** - * Account ID is mandatory when Import_Type is DBT_CLOUD - */ - 'account_id'?: string; - /** - * Project ID is mandatory when Import_Type is DBT_CLOUD - */ - 'project_id'?: string; - /** - * DBT Environment ID\" - */ - 'dbt_env_id'?: string; - /** - * Name of the project - */ - 'project_name'?: string; - /** - * Upload DBT Manifest and Catalog artifact files as a ZIP file. This field is Mandatory when Import Type is \'ZIP_FILE\' - */ - 'file_content'?: HttpFile; - - static readonly discriminator: string | undefined = undefined; - - static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "dbt_connection_identifier", - "baseName": "dbt_connection_identifier", - "type": "string", - "format": "" - }, - { - "name": "connection_name", - "baseName": "connection_name", - "type": "string", - "format": "" - }, - { - "name": "database_name", - "baseName": "database_name", - "type": "string", - "format": "" - }, - { - "name": "import_type", - "baseName": "import_type", - "type": "UpdateDbtConnectionRequestImportTypeEnum", - "format": "" - }, - { - "name": "access_token", - "baseName": "access_token", - "type": "string", - "format": "" - }, - { - "name": "dbt_url", - "baseName": "dbt_url", - "type": "string", - "format": "" - }, - { - "name": "account_id", - "baseName": "account_id", - "type": "string", - "format": "" - }, - { - "name": "project_id", - "baseName": "project_id", - "type": "string", - "format": "" - }, - { - "name": "dbt_env_id", - "baseName": "dbt_env_id", - "type": "string", - "format": "" - }, - { - "name": "project_name", - "baseName": "project_name", - "type": "string", - "format": "" - }, - { - "name": "file_content", - "baseName": "file_content", - "type": "HttpFile", - "format": "binary" - } ]; - - static getAttributeTypeMap() { - return UpdateDbtConnectionRequest.attributeTypeMap; - } - - public constructor() { - } -} - - -export type UpdateDbtConnectionRequestImportTypeEnum = "DBT_CLOUD" | "ZIP_FILE" ; - diff --git a/sdks/typescript/models/UpdateRoleRequest.ts b/sdks/typescript/models/UpdateRoleRequest.ts index 1e2fd1929..c99a28abd 100644 --- a/sdks/typescript/models/UpdateRoleRequest.ts +++ b/sdks/typescript/models/UpdateRoleRequest.ts @@ -57,5 +57,5 @@ export class UpdateRoleRequest { } -export type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "PREVIEW_THOUGHTSPOT_SAGE" ; +export type UpdateRoleRequestPrivilegesEnum = "USERDATAUPLOADING" | "DATADOWNLOADING" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "BYPASSRLS" | "DISABLE_PINBOARD_CREATION" | "DEVELOPER" | "APPLICATION_ADMINISTRATION" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYSTEM_INFO_ADMINISTRATION" | "SYNCMANAGEMENT" | "ORG_ADMINISTRATION" | "ROLE_ADMINISTRATION" | "AUTHENTICATION_ADMINISTRATION" | "BILLING_INFO_ADMINISTRATION" | "CONTROL_TRUSTED_AUTH" | "TAGMANAGEMENT" | "LIVEBOARD_VERIFIER" | "CAN_MANAGE_CUSTOM_CALENDAR" | "CAN_CREATE_OR_EDIT_CONNECTIONS" | "CAN_MANAGE_WORKSHEET_VIEWS_TABLES" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "CAN_CREATE_CATALOG" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_WEBHOOKS" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; diff --git a/sdks/typescript/models/UpdateUserGroupRequest.ts b/sdks/typescript/models/UpdateUserGroupRequest.ts index e3ad15f9c..797a11d85 100644 --- a/sdks/typescript/models/UpdateUserGroupRequest.ts +++ b/sdks/typescript/models/UpdateUserGroupRequest.ts @@ -137,8 +137,8 @@ export class UpdateUserGroupRequest { } -export type UpdateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" ; -export type UpdateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" ; +export type UpdateUserGroupRequestPrivilegesEnum = "ADMINISTRATION" | "AUTHORING" | "USERDATAUPLOADING" | "DATADOWNLOADING" | "USERMANAGEMENT" | "DATAMANAGEMENT" | "SHAREWITHALL" | "JOBSCHEDULING" | "A3ANALYSIS" | "EXPERIMENTALFEATUREPRIVILEGE" | "BYPASSRLS" | "RANALYSIS" | "DEVELOPER" | "USER_ADMINISTRATION" | "GROUP_ADMINISTRATION" | "SYNCMANAGEMENT" | "CAN_CREATE_CATALOG" | "DISABLE_PINBOARD_CREATION" | "LIVEBOARD_VERIFIER" | "PREVIEW_THOUGHTSPOT_SAGE" | "CAN_MANAGE_VERSION_CONTROL" | "THIRDPARTY_ANALYSIS" | "ALLOW_NON_EMBED_FULL_APP_ACCESS" | "CAN_ACCESS_ANALYST_STUDIO" | "CAN_MANAGE_ANALYST_STUDIO" | "CAN_MODIFY_FOLDERS" | "CAN_MANAGE_VARIABLES" | "CAN_VIEW_FOLDERS" | "PREVIEW_DOCUMENT_SEARCH" | "CAN_SETUP_VERSION_CONTROL" | "CAN_DOWNLOAD_VISUALS" | "CAN_DOWNLOAD_DETAILED_DATA" ; +export type UpdateUserGroupRequestTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP" ; export type UpdateUserGroupRequestVisibilityEnum = "SHARABLE" | "NON_SHARABLE" ; export type UpdateUserGroupRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE" ; diff --git a/sdks/typescript/models/UpdateVariableRequest.ts b/sdks/typescript/models/UpdateVariableRequest.ts index 500538134..b8f4287f7 100644 --- a/sdks/typescript/models/UpdateVariableRequest.ts +++ b/sdks/typescript/models/UpdateVariableRequest.ts @@ -10,22 +10,13 @@ * Do not edit the class manually. */ -import { InputVariableValue } from '../models/InputVariableValue'; import { HttpFile } from '../http/http'; export class UpdateVariableRequest { /** - * New name of the variable if we want to rename. + * New name of the variable. */ - 'name'?: string; - /** - * Operation to perform on the values. - */ - 'operation'?: UpdateVariableRequestOperationEnum; - /** - * Values of variable to be updated. - */ - 'values'?: Array; + 'name': string; static readonly discriminator: string | undefined = undefined; @@ -35,18 +26,6 @@ export class UpdateVariableRequest { "baseName": "name", "type": "string", "format": "" - }, - { - "name": "operation", - "baseName": "operation", - "type": "UpdateVariableRequestOperationEnum", - "format": "" - }, - { - "name": "values", - "baseName": "values", - "type": "Array", - "format": "" } ]; static getAttributeTypeMap() { @@ -57,6 +36,3 @@ export class UpdateVariableRequest { } } - -export type UpdateVariableRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE" ; - diff --git a/sdks/typescript/models/UpdateVariableValuesRequest.ts b/sdks/typescript/models/UpdateVariableValuesRequest.ts index a24ede17a..c636775ea 100644 --- a/sdks/typescript/models/UpdateVariableValuesRequest.ts +++ b/sdks/typescript/models/UpdateVariableValuesRequest.ts @@ -10,32 +10,33 @@ * Do not edit the class manually. */ -import { VariableValueInput } from '../models/VariableValueInput'; +import { VariableUpdateAssignmentInput } from '../models/VariableUpdateAssignmentInput'; +import { VariableUpdateScopeInput } from '../models/VariableUpdateScopeInput'; import { HttpFile } from '../http/http'; export class UpdateVariableValuesRequest { /** - * Variables and values + * Variables and values to update */ - 'variable_updates': Array; + 'variable_assignment': Array; /** - * Type of update operation + * Variables and values to update */ - 'operation': UpdateVariableValuesRequestOperationEnum; + 'variable_value_scope': Array; static readonly discriminator: string | undefined = undefined; static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ { - "name": "variable_updates", - "baseName": "variable_updates", - "type": "Array", + "name": "variable_assignment", + "baseName": "variable_assignment", + "type": "Array", "format": "" }, { - "name": "operation", - "baseName": "operation", - "type": "UpdateVariableValuesRequestOperationEnum", + "name": "variable_value_scope", + "baseName": "variable_value_scope", + "type": "Array", "format": "" } ]; @@ -47,6 +48,3 @@ export class UpdateVariableValuesRequest { } } - -export type UpdateVariableValuesRequestOperationEnum = "ADD" | "REMOVE" | "REPLACE" ; - diff --git a/sdks/typescript/models/UpdateWebhookConfigurationRequest.ts b/sdks/typescript/models/UpdateWebhookConfigurationRequest.ts new file mode 100644 index 000000000..17e1cf952 --- /dev/null +++ b/sdks/typescript/models/UpdateWebhookConfigurationRequest.ts @@ -0,0 +1,97 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { CreateWebhookConfigurationRequestAuthentication } from '../models/CreateWebhookConfigurationRequestAuthentication'; +import { CreateWebhookConfigurationRequestSignatureVerification } from '../models/CreateWebhookConfigurationRequestSignatureVerification'; +import { HttpFile } from '../http/http'; + +export class UpdateWebhookConfigurationRequest { + /** + * Name of the webhook configuration. + */ + 'name'?: string; + /** + * Description of the webhook configuration. + */ + 'description'?: string; + /** + * The webhook endpoint URL. + */ + 'url'?: string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any; + /** + * List of events to subscribe to. + */ + 'events'?: Array; + 'authentication'?: CreateWebhookConfigurationRequestAuthentication; + 'signature_verification'?: CreateWebhookConfigurationRequestSignatureVerification; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "CreateWebhookConfigurationRequestAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "CreateWebhookConfigurationRequestSignatureVerification", + "format": "" + } ]; + + static getAttributeTypeMap() { + return UpdateWebhookConfigurationRequest.attributeTypeMap; + } + + public constructor() { + } +} + + +export type UpdateWebhookConfigurationRequestEventsEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/User.ts b/sdks/typescript/models/User.ts index 2c26ed8f9..8bf2d0e47 100644 --- a/sdks/typescript/models/User.ts +++ b/sdks/typescript/models/User.ts @@ -190,6 +190,10 @@ export class User { * Access Control Properties which are specified for the user via JWToken */ 'access_control_properties'?: any | null; + /** + * Formula Variables which are specified for the user via JWToken + */ + 'variable_values'?: any | null; static readonly discriminator: string | undefined = undefined; @@ -463,6 +467,12 @@ export class User { "baseName": "access_control_properties", "type": "any", "format": "" + }, + { + "name": "variable_values", + "baseName": "variable_values", + "type": "any", + "format": "" } ]; static getAttributeTypeMap() { diff --git a/sdks/typescript/models/UserGroupResponse.ts b/sdks/typescript/models/UserGroupResponse.ts index 54dbc61d6..623d5f06c 100644 --- a/sdks/typescript/models/UserGroupResponse.ts +++ b/sdks/typescript/models/UserGroupResponse.ts @@ -330,6 +330,6 @@ export class UserGroupResponse { export type UserGroupResponseParentTypeEnum = "USER" | "GROUP" ; -export type UserGroupResponseTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" ; +export type UserGroupResponseTypeEnum = "LOCAL_GROUP" | "LDAP_GROUP" | "TEAM_GROUP" | "TENANT_GROUP" ; export type UserGroupResponseVisibilityEnum = "SHARABLE" | "NON_SHARABLE" ; diff --git a/sdks/typescript/models/UserObject.ts b/sdks/typescript/models/UserObject.ts index ee2b43ffa..e059a0b83 100644 --- a/sdks/typescript/models/UserObject.ts +++ b/sdks/typescript/models/UserObject.ts @@ -17,7 +17,7 @@ import { HttpFile } from '../http/http'; */ export class UserObject { /** - * 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. + * 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`. */ 'type'?: UserObjectTypeEnum | null; /** diff --git a/sdks/typescript/models/ValueScopeInput.ts b/sdks/typescript/models/ValueScopeInput.ts new file mode 100644 index 000000000..ec2f14c9a --- /dev/null +++ b/sdks/typescript/models/ValueScopeInput.ts @@ -0,0 +1,74 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* Input for variable scope in search +*/ +export class ValueScopeInput { + /** + * The unique name of the org + */ + 'org_identifier'?: string | null; + /** + * Principal type + */ + 'principal_type'?: ValueScopeInputPrincipalTypeEnum | null; + /** + * Unique ID or name of the principal + */ + 'principal_identifier'?: string | null; + /** + * Model Identifier + */ + 'model_identifier'?: string | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "org_identifier", + "baseName": "org_identifier", + "type": "string", + "format": "" + }, + { + "name": "principal_type", + "baseName": "principal_type", + "type": "ValueScopeInputPrincipalTypeEnum", + "format": "" + }, + { + "name": "principal_identifier", + "baseName": "principal_identifier", + "type": "string", + "format": "" + }, + { + "name": "model_identifier", + "baseName": "model_identifier", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return ValueScopeInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type ValueScopeInputPrincipalTypeEnum = "USER" | "USER_GROUP" ; + diff --git a/sdks/typescript/models/Variable.ts b/sdks/typescript/models/Variable.ts index 81a4b10b7..1bca14d3d 100644 --- a/sdks/typescript/models/Variable.ts +++ b/sdks/typescript/models/Variable.ts @@ -81,5 +81,5 @@ export class Variable { } -export type VariableVariableTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" ; +export type VariableVariableTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE" ; diff --git a/sdks/typescript/models/VariableDetailInput.ts b/sdks/typescript/models/VariableDetailInput.ts index 8ca23b228..7f3a353ff 100644 --- a/sdks/typescript/models/VariableDetailInput.ts +++ b/sdks/typescript/models/VariableDetailInput.ts @@ -60,5 +60,5 @@ export class VariableDetailInput { } -export type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" ; +export type VariableDetailInputTypeEnum = "CONNECTION_PROPERTY" | "TABLE_MAPPING" | "CONNECTION_PROPERTY_PER_PRINCIPAL" | "FORMULA_VARIABLE" ; diff --git a/sdks/typescript/models/VariableValueInput.ts b/sdks/typescript/models/VariableUpdateAssignmentInput.ts similarity index 63% rename from sdks/typescript/models/VariableValueInput.ts rename to sdks/typescript/models/VariableUpdateAssignmentInput.ts index 5b569b8f8..61e436a23 100644 --- a/sdks/typescript/models/VariableValueInput.ts +++ b/sdks/typescript/models/VariableUpdateAssignmentInput.ts @@ -10,13 +10,12 @@ * Do not edit the class manually. */ -import { InputVariableValue } from '../models/InputVariableValue'; import { HttpFile } from '../http/http'; /** -* Input for variable value update +* Input for variable value update in batch operations */ -export class VariableValueInput { +export class VariableUpdateAssignmentInput { /** * ID or Name of the variable */ @@ -24,7 +23,11 @@ export class VariableValueInput { /** * Values of the variable */ - 'variable_values': Array; + 'variable_values': Array; + /** + * Operation to perform + */ + 'operation': VariableUpdateAssignmentInputOperationEnum; static readonly discriminator: string | undefined = undefined; @@ -38,15 +41,24 @@ export class VariableValueInput { { "name": "variable_values", "baseName": "variable_values", - "type": "Array", + "type": "Array", + "format": "" + }, + { + "name": "operation", + "baseName": "operation", + "type": "VariableUpdateAssignmentInputOperationEnum", "format": "" } ]; static getAttributeTypeMap() { - return VariableValueInput.attributeTypeMap; + return VariableUpdateAssignmentInput.attributeTypeMap; } public constructor() { } } + +export type VariableUpdateAssignmentInputOperationEnum = "ADD" | "REMOVE" | "REPLACE" | "RESET" ; + diff --git a/sdks/typescript/models/InputVariableValue.ts b/sdks/typescript/models/VariableUpdateScopeInput.ts similarity index 74% rename from sdks/typescript/models/InputVariableValue.ts rename to sdks/typescript/models/VariableUpdateScopeInput.ts index 1d596fbb0..4edaf1331 100644 --- a/sdks/typescript/models/InputVariableValue.ts +++ b/sdks/typescript/models/VariableUpdateScopeInput.ts @@ -12,11 +12,10 @@ import { HttpFile } from '../http/http'; -export class InputVariableValue { - /** - * The connection property value - */ - 'value': string; +/** +* Input for variable value update in batch operations +*/ +export class VariableUpdateScopeInput { /** * The unique name of the org */ @@ -24,25 +23,23 @@ export class InputVariableValue { /** * Principal type */ - 'principal_type'?: InputVariableValuePrincipalTypeEnum | null; + 'principal_type'?: VariableUpdateScopeInputPrincipalTypeEnum | null; /** * Unique ID or name of the principal */ 'principal_identifier'?: string | null; /** - * The priority assigned to this value. If there are 2 matching values, the one with the higher priority will be picked. + * Unique ID of the model + */ + 'model_identifier'?: string | null; + /** + * Priority level */ 'priority'?: number | null; static readonly discriminator: string | undefined = undefined; static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ - { - "name": "value", - "baseName": "value", - "type": "string", - "format": "" - }, { "name": "org_identifier", "baseName": "org_identifier", @@ -52,7 +49,7 @@ export class InputVariableValue { { "name": "principal_type", "baseName": "principal_type", - "type": "InputVariableValuePrincipalTypeEnum", + "type": "VariableUpdateScopeInputPrincipalTypeEnum", "format": "" }, { @@ -61,6 +58,12 @@ export class InputVariableValue { "type": "string", "format": "" }, + { + "name": "model_identifier", + "baseName": "model_identifier", + "type": "string", + "format": "" + }, { "name": "priority", "baseName": "priority", @@ -69,7 +72,7 @@ export class InputVariableValue { } ]; static getAttributeTypeMap() { - return InputVariableValue.attributeTypeMap; + return VariableUpdateScopeInput.attributeTypeMap; } public constructor() { @@ -77,5 +80,5 @@ export class InputVariableValue { } -export type InputVariableValuePrincipalTypeEnum = "USER" | "USER_GROUP" ; +export type VariableUpdateScopeInputPrincipalTypeEnum = "USER" | "USER_GROUP" ; diff --git a/sdks/typescript/models/VariableValue.ts b/sdks/typescript/models/VariableValue.ts index 0d14b2f3f..ce77389fa 100644 --- a/sdks/typescript/models/VariableValue.ts +++ b/sdks/typescript/models/VariableValue.ts @@ -18,6 +18,10 @@ export class VariableValue { */ 'value'?: string | null; /** + * The value of the variable if it is a list type + */ + 'value_list'?: Array | null; + /** * The unique name of the org */ 'org_identifier': string; @@ -43,6 +47,12 @@ export class VariableValue { "type": "string", "format": "" }, + { + "name": "value_list", + "baseName": "value_list", + "type": "Array", + "format": "" + }, { "name": "org_identifier", "baseName": "org_identifier", diff --git a/sdks/typescript/models/VariableValues.ts b/sdks/typescript/models/VariableValues.ts new file mode 100644 index 000000000..aee74c642 --- /dev/null +++ b/sdks/typescript/models/VariableValues.ts @@ -0,0 +1,51 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +/** +* Variable values. +*/ +export class VariableValues { + /** + * The name of the existing formula variable. + */ + 'name': string; + /** + * The values to filter on. + */ + 'values': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "values", + "baseName": "values", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return VariableValues.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthApiKey.ts b/sdks/typescript/models/WebhookAuthApiKey.ts new file mode 100644 index 000000000..64f8ce193 --- /dev/null +++ b/sdks/typescript/models/WebhookAuthApiKey.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookAuthApiKey { + /** + * The header or query parameter name for the API key. + */ + 'key': string; + /** + * The API key value. + */ + 'value': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "key", + "baseName": "key", + "type": "string", + "format": "" + }, + { + "name": "value", + "baseName": "value", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthApiKey.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthApiKeyInput.ts b/sdks/typescript/models/WebhookAuthApiKeyInput.ts new file mode 100644 index 000000000..8b5ff6836 --- /dev/null +++ b/sdks/typescript/models/WebhookAuthApiKeyInput.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookAuthApiKeyInput { + /** + * The header or query parameter name for the API key. + */ + 'key': string; + /** + * The API key value. + */ + 'value': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "key", + "baseName": "key", + "type": "string", + "format": "" + }, + { + "name": "value", + "baseName": "value", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthApiKeyInput.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthBasicAuth.ts b/sdks/typescript/models/WebhookAuthBasicAuth.ts new file mode 100644 index 000000000..f14a5d47a --- /dev/null +++ b/sdks/typescript/models/WebhookAuthBasicAuth.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookAuthBasicAuth { + /** + * Username for basic authentication. + */ + 'username': string; + /** + * Password for basic authentication. + */ + 'password': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "username", + "baseName": "username", + "type": "string", + "format": "" + }, + { + "name": "password", + "baseName": "password", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthBasicAuth.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthBasicAuthInput.ts b/sdks/typescript/models/WebhookAuthBasicAuthInput.ts new file mode 100644 index 000000000..99e8bbebd --- /dev/null +++ b/sdks/typescript/models/WebhookAuthBasicAuthInput.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookAuthBasicAuthInput { + /** + * Username for basic authentication. + */ + 'username': string; + /** + * Password for basic authentication. + */ + 'password': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "username", + "baseName": "username", + "type": "string", + "format": "" + }, + { + "name": "password", + "baseName": "password", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthBasicAuthInput.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthOAuth2.ts b/sdks/typescript/models/WebhookAuthOAuth2.ts new file mode 100644 index 000000000..926b8b06c --- /dev/null +++ b/sdks/typescript/models/WebhookAuthOAuth2.ts @@ -0,0 +1,58 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookAuthOAuth2 { + /** + * OAuth2 authorization server URL. + */ + 'authorization_url': string; + /** + * OAuth2 client identifier. + */ + 'client_id': string; + /** + * OAuth2 client secret key. + */ + 'client_secret': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "authorization_url", + "baseName": "authorization_url", + "type": "string", + "format": "" + }, + { + "name": "client_id", + "baseName": "client_id", + "type": "string", + "format": "" + }, + { + "name": "client_secret", + "baseName": "client_secret", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthOAuth2.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthOAuth2Input.ts b/sdks/typescript/models/WebhookAuthOAuth2Input.ts new file mode 100644 index 000000000..9f5da720c --- /dev/null +++ b/sdks/typescript/models/WebhookAuthOAuth2Input.ts @@ -0,0 +1,58 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookAuthOAuth2Input { + /** + * OAuth2 authorization server URL. + */ + 'authorization_url': string; + /** + * OAuth2 client identifier. + */ + 'client_id': string; + /** + * OAuth2 client secret key. + */ + 'client_secret': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "authorization_url", + "baseName": "authorization_url", + "type": "string", + "format": "" + }, + { + "name": "client_id", + "baseName": "client_id", + "type": "string", + "format": "" + }, + { + "name": "client_secret", + "baseName": "client_secret", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthOAuth2Input.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthentication.ts b/sdks/typescript/models/WebhookAuthentication.ts new file mode 100644 index 000000000..20a7e388a --- /dev/null +++ b/sdks/typescript/models/WebhookAuthentication.ts @@ -0,0 +1,62 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { WebhookAuthApiKey } from '../models/WebhookAuthApiKey'; +import { WebhookAuthBasicAuth } from '../models/WebhookAuthBasicAuth'; +import { WebhookAuthOAuth2 } from '../models/WebhookAuthOAuth2'; +import { HttpFile } from '../http/http'; + +export class WebhookAuthentication { + 'API_KEY'?: WebhookAuthApiKey; + 'BASIC_AUTH'?: WebhookAuthBasicAuth; + /** + * Redacted Bearer token authentication configuration. + */ + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKey", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuth", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthentication.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookAuthenticationInput.ts b/sdks/typescript/models/WebhookAuthenticationInput.ts new file mode 100644 index 000000000..1c646daba --- /dev/null +++ b/sdks/typescript/models/WebhookAuthenticationInput.ts @@ -0,0 +1,62 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { WebhookAuthApiKeyInput } from '../models/WebhookAuthApiKeyInput'; +import { WebhookAuthBasicAuthInput } from '../models/WebhookAuthBasicAuthInput'; +import { WebhookAuthOAuth2Input } from '../models/WebhookAuthOAuth2Input'; +import { HttpFile } from '../http/http'; + +export class WebhookAuthenticationInput { + 'API_KEY'?: WebhookAuthApiKeyInput; + 'BASIC_AUTH'?: WebhookAuthBasicAuthInput; + /** + * Bearer token authentication configuration. + */ + 'BEARER_TOKEN'?: string | null; + 'OAUTH2'?: WebhookAuthOAuth2Input; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "API_KEY", + "baseName": "API_KEY", + "type": "WebhookAuthApiKeyInput", + "format": "" + }, + { + "name": "BASIC_AUTH", + "baseName": "BASIC_AUTH", + "type": "WebhookAuthBasicAuthInput", + "format": "" + }, + { + "name": "BEARER_TOKEN", + "baseName": "BEARER_TOKEN", + "type": "string", + "format": "" + }, + { + "name": "OAUTH2", + "baseName": "OAUTH2", + "type": "WebhookAuthOAuth2Input", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookAuthenticationInput.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/CreateEmailCustomisationResponse.ts b/sdks/typescript/models/WebhookDeleteFailure.ts similarity index 60% rename from sdks/typescript/models/CreateEmailCustomisationResponse.ts rename to sdks/typescript/models/WebhookDeleteFailure.ts index d9a82c31e..caa196a0d 100644 --- a/sdks/typescript/models/CreateEmailCustomisationResponse.ts +++ b/sdks/typescript/models/WebhookDeleteFailure.ts @@ -10,39 +10,31 @@ * Do not edit the class manually. */ -import { OrgType } from '../models/OrgType'; import { HttpFile } from '../http/http'; -export class CreateEmailCustomisationResponse { +export class WebhookDeleteFailure { /** - * Tenant ID + * Unique identifier of the webhook that failed to delete. */ - 'tenant_id': string; - 'org': OrgType; + 'id': string; /** - * Email customization name. + * Name of the webhook that failed to delete. */ 'name': string; /** - * Customization configuration for the email + * Error message describing why the deletion failed. */ - 'template_properties': any; + 'error': string; static readonly discriminator: string | undefined = undefined; static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ { - "name": "tenant_id", - "baseName": "tenant_id", + "name": "id", + "baseName": "id", "type": "string", "format": "" }, - { - "name": "org", - "baseName": "org", - "type": "OrgType", - "format": "" - }, { "name": "name", "baseName": "name", @@ -50,14 +42,14 @@ export class CreateEmailCustomisationResponse { "format": "" }, { - "name": "template_properties", - "baseName": "template_properties", - "type": "any", + "name": "error", + "baseName": "error", + "type": "string", "format": "" } ]; static getAttributeTypeMap() { - return CreateEmailCustomisationResponse.attributeTypeMap; + return WebhookDeleteFailure.attributeTypeMap; } public constructor() { diff --git a/sdks/typescript/models/WebhookDeleteResponse.ts b/sdks/typescript/models/WebhookDeleteResponse.ts new file mode 100644 index 000000000..83a30729f --- /dev/null +++ b/sdks/typescript/models/WebhookDeleteResponse.ts @@ -0,0 +1,70 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { WebhookDeleteFailure } from '../models/WebhookDeleteFailure'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { HttpFile } from '../http/http'; + +export class WebhookDeleteResponse { + /** + * Number of webhooks successfully deleted. + */ + 'deleted_count': number; + /** + * Number of webhooks that failed to delete. + */ + 'failed_count': number; + /** + * List of successfully deleted webhooks. + */ + 'deleted_webhooks': Array; + /** + * List of webhooks that failed to delete with error details. + */ + 'failed_webhooks': Array; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "deleted_count", + "baseName": "deleted_count", + "type": "number", + "format": "int32" + }, + { + "name": "failed_count", + "baseName": "failed_count", + "type": "number", + "format": "int32" + }, + { + "name": "deleted_webhooks", + "baseName": "deleted_webhooks", + "type": "Array", + "format": "" + }, + { + "name": "failed_webhooks", + "baseName": "failed_webhooks", + "type": "Array", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookDeleteResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookOrg.ts b/sdks/typescript/models/WebhookOrg.ts new file mode 100644 index 000000000..0a7058164 --- /dev/null +++ b/sdks/typescript/models/WebhookOrg.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookOrg { + /** + * Unique identifier of the org. + */ + 'id': string; + /** + * Name of the org. + */ + 'name': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookOrg.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookPagination.ts b/sdks/typescript/models/WebhookPagination.ts new file mode 100644 index 000000000..d126caf20 --- /dev/null +++ b/sdks/typescript/models/WebhookPagination.ts @@ -0,0 +1,68 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookPagination { + /** + * The starting record number from where the records are included. + */ + 'record_offset': number; + /** + * The number of records included in the response. + */ + 'record_size': number; + /** + * Total number of webhook configurations available. + */ + 'total_count': number; + /** + * Indicates whether more records are available beyond the current response. + */ + 'has_more': boolean; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "record_offset", + "baseName": "record_offset", + "type": "number", + "format": "int32" + }, + { + "name": "record_size", + "baseName": "record_size", + "type": "number", + "format": "int32" + }, + { + "name": "total_count", + "baseName": "total_count", + "type": "number", + "format": "int32" + }, + { + "name": "has_more", + "baseName": "has_more", + "type": "boolean", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookPagination.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookResponse.ts b/sdks/typescript/models/WebhookResponse.ts new file mode 100644 index 000000000..d5d68ddfa --- /dev/null +++ b/sdks/typescript/models/WebhookResponse.ts @@ -0,0 +1,150 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { WebhookAuthentication } from '../models/WebhookAuthentication'; +import { WebhookOrg } from '../models/WebhookOrg'; +import { WebhookSignatureVerification } from '../models/WebhookSignatureVerification'; +import { WebhookUser } from '../models/WebhookUser'; +import { HttpFile } from '../http/http'; + +export class WebhookResponse { + /** + * Unique identifier of the webhook configuration. + */ + 'id': string; + /** + * Name of the webhook configuration. + */ + 'name': string; + /** + * Description of the webhook configuration. + */ + 'description'?: string | null; + 'org'?: WebhookOrg; + /** + * The webhook endpoint URL. + */ + 'url': string; + /** + * Additional URL parameters as key-value pairs. + */ + 'url_params'?: any | null; + /** + * List of events this webhook subscribes to. + */ + 'events': Array; + 'authentication'?: WebhookAuthentication; + 'signature_verification'?: WebhookSignatureVerification; + /** + * Creation time of the webhook configuration in milliseconds. + */ + 'creation_time_in_millis': number; + /** + * Last modified time of the webhook configuration in milliseconds. + */ + 'modification_time_in_millis': number; + 'created_by'?: WebhookUser; + 'last_modified_by'?: WebhookUser; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + }, + { + "name": "description", + "baseName": "description", + "type": "string", + "format": "" + }, + { + "name": "org", + "baseName": "org", + "type": "WebhookOrg", + "format": "" + }, + { + "name": "url", + "baseName": "url", + "type": "string", + "format": "" + }, + { + "name": "url_params", + "baseName": "url_params", + "type": "any", + "format": "" + }, + { + "name": "events", + "baseName": "events", + "type": "Array", + "format": "" + }, + { + "name": "authentication", + "baseName": "authentication", + "type": "WebhookAuthentication", + "format": "" + }, + { + "name": "signature_verification", + "baseName": "signature_verification", + "type": "WebhookSignatureVerification", + "format": "" + }, + { + "name": "creation_time_in_millis", + "baseName": "creation_time_in_millis", + "type": "number", + "format": "float" + }, + { + "name": "modification_time_in_millis", + "baseName": "modification_time_in_millis", + "type": "number", + "format": "float" + }, + { + "name": "created_by", + "baseName": "created_by", + "type": "WebhookUser", + "format": "" + }, + { + "name": "last_modified_by", + "baseName": "last_modified_by", + "type": "WebhookUser", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookResponse.attributeTypeMap; + } + + public constructor() { + } +} + + +export type WebhookResponseEventsEnum = "LIVEBOARD_SCHEDULE" ; + diff --git a/sdks/typescript/models/WebhookSearchResponse.ts b/sdks/typescript/models/WebhookSearchResponse.ts new file mode 100644 index 000000000..0611aaf60 --- /dev/null +++ b/sdks/typescript/models/WebhookSearchResponse.ts @@ -0,0 +1,47 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { WebhookPagination } from '../models/WebhookPagination'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { HttpFile } from '../http/http'; + +export class WebhookSearchResponse { + /** + * List of webhook configurations matching the search criteria. + */ + 'webhooks': Array; + 'pagination': WebhookPagination; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "webhooks", + "baseName": "webhooks", + "type": "Array", + "format": "" + }, + { + "name": "pagination", + "baseName": "pagination", + "type": "WebhookPagination", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookSearchResponse.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/WebhookSignatureVerification.ts b/sdks/typescript/models/WebhookSignatureVerification.ts new file mode 100644 index 000000000..fbbee7812 --- /dev/null +++ b/sdks/typescript/models/WebhookSignatureVerification.ts @@ -0,0 +1,72 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookSignatureVerification { + /** + * Signature verification method type. + */ + 'type': WebhookSignatureVerificationTypeEnum; + /** + * HTTP header where the signature is sent. + */ + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': WebhookSignatureVerificationAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "type", + "baseName": "type", + "type": "WebhookSignatureVerificationTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "WebhookSignatureVerificationAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookSignatureVerification.attributeTypeMap; + } + + public constructor() { + } +} + + +export type WebhookSignatureVerificationTypeEnum = "HMAC_SHA256" ; +export type WebhookSignatureVerificationAlgorithmEnum = "SHA256" ; + diff --git a/sdks/typescript/models/WebhookSignatureVerificationInput.ts b/sdks/typescript/models/WebhookSignatureVerificationInput.ts new file mode 100644 index 000000000..b48449e29 --- /dev/null +++ b/sdks/typescript/models/WebhookSignatureVerificationInput.ts @@ -0,0 +1,72 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookSignatureVerificationInput { + /** + * Signature verification method type. + */ + 'type': WebhookSignatureVerificationInputTypeEnum; + /** + * HTTP header where the signature is sent. + */ + 'header': string; + /** + * Hash algorithm used for signature verification. + */ + 'algorithm': WebhookSignatureVerificationInputAlgorithmEnum; + /** + * Shared secret used for HMAC signature generation. + */ + 'secret': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "type", + "baseName": "type", + "type": "WebhookSignatureVerificationInputTypeEnum", + "format": "" + }, + { + "name": "header", + "baseName": "header", + "type": "string", + "format": "" + }, + { + "name": "algorithm", + "baseName": "algorithm", + "type": "WebhookSignatureVerificationInputAlgorithmEnum", + "format": "" + }, + { + "name": "secret", + "baseName": "secret", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookSignatureVerificationInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type WebhookSignatureVerificationInputTypeEnum = "HMAC_SHA256" ; +export type WebhookSignatureVerificationInputAlgorithmEnum = "SHA256" ; + diff --git a/sdks/typescript/models/WebhookSortOptionsInput.ts b/sdks/typescript/models/WebhookSortOptionsInput.ts new file mode 100644 index 000000000..c84a08019 --- /dev/null +++ b/sdks/typescript/models/WebhookSortOptionsInput.ts @@ -0,0 +1,52 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookSortOptionsInput { + /** + * Name of the field to apply the sort on. + */ + 'field_name'?: WebhookSortOptionsInputFieldNameEnum | null; + /** + * Sort order: ASC (Ascending) or DESC (Descending). + */ + 'order'?: WebhookSortOptionsInputOrderEnum | null; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "field_name", + "baseName": "field_name", + "type": "WebhookSortOptionsInputFieldNameEnum", + "format": "" + }, + { + "name": "order", + "baseName": "order", + "type": "WebhookSortOptionsInputOrderEnum", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookSortOptionsInput.attributeTypeMap; + } + + public constructor() { + } +} + + +export type WebhookSortOptionsInputFieldNameEnum = "CREATED" | "MODIFIED" | "NAME" ; +export type WebhookSortOptionsInputOrderEnum = "ASC" | "DESC" ; + diff --git a/sdks/typescript/models/WebhookUser.ts b/sdks/typescript/models/WebhookUser.ts new file mode 100644 index 000000000..fbadaf88b --- /dev/null +++ b/sdks/typescript/models/WebhookUser.ts @@ -0,0 +1,48 @@ +/** + * ThoughtSpot Public REST API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * OpenAPI spec version: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { HttpFile } from '../http/http'; + +export class WebhookUser { + /** + * Unique identifier of the user. + */ + 'id': string; + /** + * Name of the user. + */ + 'name': string; + + static readonly discriminator: string | undefined = undefined; + + static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [ + { + "name": "id", + "baseName": "id", + "type": "string", + "format": "" + }, + { + "name": "name", + "baseName": "name", + "type": "string", + "format": "" + } ]; + + static getAttributeTypeMap() { + return WebhookUser.attributeTypeMap; + } + + public constructor() { + } +} + diff --git a/sdks/typescript/models/all.ts b/sdks/typescript/models/all.ts index a2304b0b2..1393d9fc1 100644 --- a/sdks/typescript/models/all.ts +++ b/sdks/typescript/models/all.ts @@ -1,3 +1,4 @@ +export * from '../models/AIContext' export * from '../models/APIKey' export * from '../models/APIKeyInput' export * from '../models/AccessToken' @@ -8,7 +9,9 @@ export * from '../models/ActionDetails' export * from '../models/ActionDetailsInput' export * from '../models/ActionDetailsInputCreate' export * from '../models/ActivateUserRequest' +export * from '../models/AgentConversation' export * from '../models/AnswerContent' +export * from '../models/AnswerContextInput' export * from '../models/AnswerDataResponse' export * from '../models/AssignChangeAuthorRequest' export * from '../models/AssignTagRequest' @@ -40,12 +43,19 @@ export * from '../models/CommitFileType' export * from '../models/CommitHistoryResponse' export * from '../models/CommitResponse' export * from '../models/CommiterType' +export * from '../models/CommunicationChannelPreferencesResponse' +export * from '../models/ConfigureCommunicationChannelPreferencesRequest' export * from '../models/ConnectionConfigurationResponse' export * from '../models/ConnectionConfigurationSearchRequest' export * from '../models/ConnectionInput' +export * from '../models/ContextPayloadV2Input' export * from '../models/Conversation' +export * from '../models/ConversationSettingsInput' export * from '../models/ConvertWorksheetToModelRequest' export * from '../models/CopyObjectRequest' +export * from '../models/CreateAgentConversationRequest' +export * from '../models/CreateAgentConversationRequestConversationSettings' +export * from '../models/CreateAgentConversationRequestMetadataContext' export * from '../models/CreateCalendarRequest' export * from '../models/CreateCalendarRequestTableReference' export * from '../models/CreateConfigRequest' @@ -70,9 +80,14 @@ export * from '../models/CreateTagRequest' export * from '../models/CreateUserGroupRequest' export * from '../models/CreateUserRequest' export * from '../models/CreateVariableRequest' +export * from '../models/CreateWebhookConfigurationRequest' +export * from '../models/CreateWebhookConfigurationRequestAuthentication' +export * from '../models/CreateWebhookConfigurationRequestSignatureVerification' export * from '../models/CronExpression' export * from '../models/CronExpressionInput' export * from '../models/CustomActionMetadataTypeInput' +export * from '../models/DataSource' +export * from '../models/DataSourceContextInput' export * from '../models/DataWarehouseObjectInput' export * from '../models/DataWarehouseObjects' export * from '../models/Database' @@ -88,12 +103,21 @@ export * from '../models/DeleteConnectionRequest' export * from '../models/DeleteMetadataRequest' export * from '../models/DeleteMetadataTypeInput' export * from '../models/DeleteOrgEmailCustomizationRequest' +export * from '../models/DeleteWebhookConfigurationsRequest' export * from '../models/DeployCommitRequest' export * from '../models/DeployResponse' +export * from '../models/EntityHeader' export * from '../models/ErrorResponse' +export * from '../models/EurekaDataSourceSuggestionResponse' export * from '../models/EurekaDecomposeQueryResponse' +export * from '../models/EurekaGetNLInstructionsResponse' +export * from '../models/EurekaGetRelevantQuestionsResponse' export * from '../models/EurekaLLMDecomposeQueryResponse' export * from '../models/EurekaLLMSuggestedQuery' +export * from '../models/EurekaRelevantQuestion' +export * from '../models/EurekaSetNLInstructionsResponse' +export * from '../models/EventChannelConfig' +export * from '../models/EventChannelConfigInput' export * from '../models/ExcludeMetadataListItemInput' export * from '../models/ExportAnswerReportRequest' export * from '../models/ExportAnswerReportRequestRegionalSettings' @@ -127,9 +151,14 @@ export * from '../models/GenerateCSVRequest' export * from '../models/GenericInfo' export * from '../models/GetAsyncImportStatusResponse' export * from '../models/GetCustomAccessTokenRequest' +export * from '../models/GetDataSourceSuggestionsRequest' export * from '../models/GetFullAccessTokenRequest' export * from '../models/GetFullAccessTokenRequestUserParameters' +export * from '../models/GetNLInstructionsRequest' export * from '../models/GetObjectAccessTokenRequest' +export * from '../models/GetRelevantQuestionsRequest' +export * from '../models/GetRelevantQuestionsRequestAiContext' +export * from '../models/GetRelevantQuestionsRequestMetadataContext' export * from '../models/GetTokenResponse' export * from '../models/GroupObject' export * from '../models/GroupsImportListInput' @@ -145,11 +174,11 @@ export * from '../models/ImportUserType' export * from '../models/ImportUsersRequest' export * from '../models/ImportUsersResponse' export * from '../models/InputEurekaNLSRequest' -export * from '../models/InputVariableValue' export * from '../models/JWTMetadataObject' export * from '../models/JWTParameter' export * from '../models/JWTUserOptions' export * from '../models/JWTUserOptionsFull' +export * from '../models/LBContextInput' export * from '../models/LiveboardContent' export * from '../models/LiveboardDataResponse' export * from '../models/LiveboardOptions' @@ -157,6 +186,7 @@ export * from '../models/LiveboardOptionsInput' export * from '../models/LogResponse' export * from '../models/LoginRequest' export * from '../models/MetadataAssociationItem' +export * from '../models/MetadataContext' export * from '../models/MetadataInput' export * from '../models/MetadataListItemInput' export * from '../models/MetadataObject' @@ -164,9 +194,15 @@ export * from '../models/MetadataResponse' export * from '../models/MetadataSearchResponse' export * from '../models/MetadataSearchSortOptions' export * from '../models/ModelTableList' +export * from '../models/NLInstructionsInfo' +export * from '../models/NLInstructionsInfoInput' export * from '../models/ObjectIDAndName' export * from '../models/Org' +export * from '../models/OrgChannelConfigInput' +export * from '../models/OrgChannelConfigResponse' +export * from '../models/OrgDetails' export * from '../models/OrgInfo' +export * from '../models/OrgPreferenceSearchCriteriaInput' export * from '../models/OrgResponse' export * from '../models/OrgType' export * from '../models/ParameterValues' @@ -228,6 +264,7 @@ export * from '../models/Scope' export * from '../models/SearchCalendarsRequest' export * from '../models/SearchCalendarsRequestSortOptions' export * from '../models/SearchCommitsRequest' +export * from '../models/SearchCommunicationChannelPreferencesRequest' export * from '../models/SearchConfigRequest' export * from '../models/SearchConnectionRequest' export * from '../models/SearchConnectionRequestSortOptions' @@ -252,7 +289,13 @@ export * from '../models/SearchUserGroupsRequestSortOptions' export * from '../models/SearchUsersRequest' export * from '../models/SearchUsersRequestSortOptions' export * from '../models/SearchVariablesRequest' +export * from '../models/SearchWebhookConfigurationsRequest' +export * from '../models/SearchWebhookConfigurationsRequestSortOptions' +export * from '../models/SendAgentMessageRequest' +export * from '../models/SendAgentMessageResponse' +export * from '../models/SendAgentMessageStreamingRequest' export * from '../models/SendMessageRequest' +export * from '../models/SetNLInstructionsRequest' export * from '../models/ShareMetadataRequest' export * from '../models/ShareMetadataTypeInput' export * from '../models/SharePermissionsInput' @@ -305,6 +348,7 @@ export * from '../models/UpdateUserGroupRequest' export * from '../models/UpdateUserRequest' export * from '../models/UpdateVariableRequest' export * from '../models/UpdateVariableValuesRequest' +export * from '../models/UpdateWebhookConfigurationRequest' export * from '../models/User' export * from '../models/UserGroup' export * from '../models/UserGroupResponse' @@ -314,7 +358,28 @@ export * from '../models/UserParameterOptions' export * from '../models/UserPrincipal' export * from '../models/ValidateMergeRequest' export * from '../models/ValidateTokenRequest' +export * from '../models/ValueScopeInput' export * from '../models/Variable' export * from '../models/VariableDetailInput' +export * from '../models/VariableUpdateAssignmentInput' +export * from '../models/VariableUpdateScopeInput' export * from '../models/VariableValue' -export * from '../models/VariableValueInput' +export * from '../models/VariableValues' +export * from '../models/WebhookAuthApiKey' +export * from '../models/WebhookAuthApiKeyInput' +export * from '../models/WebhookAuthBasicAuth' +export * from '../models/WebhookAuthBasicAuthInput' +export * from '../models/WebhookAuthOAuth2' +export * from '../models/WebhookAuthOAuth2Input' +export * from '../models/WebhookAuthentication' +export * from '../models/WebhookAuthenticationInput' +export * from '../models/WebhookDeleteFailure' +export * from '../models/WebhookDeleteResponse' +export * from '../models/WebhookOrg' +export * from '../models/WebhookPagination' +export * from '../models/WebhookResponse' +export * from '../models/WebhookSearchResponse' +export * from '../models/WebhookSignatureVerification' +export * from '../models/WebhookSignatureVerificationInput' +export * from '../models/WebhookSortOptionsInput' +export * from '../models/WebhookUser' diff --git a/sdks/typescript/package-lock.json b/sdks/typescript/package-lock.json index bcb6483c4..6e7df2fae 100644 --- a/sdks/typescript/package-lock.json +++ b/sdks/typescript/package-lock.json @@ -1,12 +1,12 @@ { "name": "@thoughtspot/rest-api-sdk", - "version": "2.17.1", + "version": "2.20.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@thoughtspot/rest-api-sdk", - "version": "2.17.1", + "version": "2.20.0", "license": "ThoughtSpot Development Tools End User License Agreement", "dependencies": { "es6-promise": "^4.2.4", @@ -30,7 +30,7 @@ }, "node_modules/@babel/code-frame": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@babel/code-frame/-/code-frame-7.27.1.tgz", "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", @@ -44,9 +44,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -55,7 +55,7 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", @@ -70,7 +70,7 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", @@ -83,7 +83,7 @@ }, "node_modules/@esbuild/android-arm": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/android-arm/-/android-arm-0.18.20.tgz", "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "cpu": [ "arm" @@ -100,7 +100,7 @@ }, "node_modules/@esbuild/android-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", "cpu": [ "arm64" @@ -117,7 +117,7 @@ }, "node_modules/@esbuild/android-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/android-x64/-/android-x64-0.18.20.tgz", "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", "cpu": [ "x64" @@ -134,7 +134,7 @@ }, "node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" @@ -151,7 +151,7 @@ }, "node_modules/@esbuild/darwin-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", "cpu": [ "x64" @@ -168,7 +168,7 @@ }, "node_modules/@esbuild/freebsd-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", "cpu": [ "arm64" @@ -185,7 +185,7 @@ }, "node_modules/@esbuild/freebsd-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", "cpu": [ "x64" @@ -202,7 +202,7 @@ }, "node_modules/@esbuild/linux-arm": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", "cpu": [ "arm" @@ -219,7 +219,7 @@ }, "node_modules/@esbuild/linux-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", "cpu": [ "arm64" @@ -236,7 +236,7 @@ }, "node_modules/@esbuild/linux-ia32": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", "cpu": [ "ia32" @@ -253,7 +253,7 @@ }, "node_modules/@esbuild/linux-loong64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", "cpu": [ "loong64" @@ -270,7 +270,7 @@ }, "node_modules/@esbuild/linux-mips64el": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", "cpu": [ "mips64el" @@ -287,7 +287,7 @@ }, "node_modules/@esbuild/linux-ppc64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", "cpu": [ "ppc64" @@ -304,7 +304,7 @@ }, "node_modules/@esbuild/linux-riscv64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", "cpu": [ "riscv64" @@ -321,7 +321,7 @@ }, "node_modules/@esbuild/linux-s390x": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", "cpu": [ "s390x" @@ -338,7 +338,7 @@ }, "node_modules/@esbuild/linux-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", "cpu": [ "x64" @@ -355,7 +355,7 @@ }, "node_modules/@esbuild/netbsd-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", "cpu": [ "x64" @@ -372,7 +372,7 @@ }, "node_modules/@esbuild/openbsd-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", "cpu": [ "x64" @@ -389,7 +389,7 @@ }, "node_modules/@esbuild/sunos-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", "cpu": [ "x64" @@ -406,7 +406,7 @@ }, "node_modules/@esbuild/win32-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", "cpu": [ "arm64" @@ -423,7 +423,7 @@ }, "node_modules/@esbuild/win32-ia32": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", "cpu": [ "ia32" @@ -440,7 +440,7 @@ }, "node_modules/@esbuild/win32-x64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "cpu": [ "x64" @@ -455,112 +455,9 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@jest/diff-sequences": { "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", "dev": true, "license": "MIT", @@ -569,9 +466,9 @@ } }, "node_modules/@jest/expect-utils": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz", - "integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", "dev": true, "license": "MIT", "dependencies": { @@ -583,7 +480,7 @@ }, "node_modules/@jest/get-type": { "version": "30.1.0", - "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jest/get-type/-/get-type-30.1.0.tgz", "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", "dev": true, "license": "MIT", @@ -593,7 +490,7 @@ }, "node_modules/@jest/pattern": { "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jest/pattern/-/pattern-30.0.1.tgz", "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, "license": "MIT", @@ -607,7 +504,7 @@ }, "node_modules/@jest/schemas": { "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jest/schemas/-/schemas-30.0.5.tgz", "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, "license": "MIT", @@ -619,9 +516,9 @@ } }, "node_modules/@jest/types": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", - "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, "license": "MIT", "dependencies": { @@ -639,7 +536,7 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", @@ -650,7 +547,7 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", @@ -660,14 +557,14 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", @@ -678,7 +575,7 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", @@ -692,7 +589,7 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", @@ -702,7 +599,7 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", @@ -714,34 +611,23 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@sinclair/typebox": { "version": "0.34.41", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@sinclair/typebox/-/typebox-0.34.41.tgz", "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", "dev": true, "license": "MIT" }, "node_modules/@swc/core": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz", - "integrity": "sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core/-/core-1.15.4.tgz", + "integrity": "sha512-fH81BPo6EiJ7BUb6Qa5SY/NLWIRVambqU3740g0XPFPEz5KFPnzRYpR6zodQNOcEb9XUtZzRO1Y0WyIJP7iBxQ==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.24" + "@swc/types": "^0.1.25" }, "engines": { "node": ">=10" @@ -751,16 +637,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.13.5", - "@swc/core-darwin-x64": "1.13.5", - "@swc/core-linux-arm-gnueabihf": "1.13.5", - "@swc/core-linux-arm64-gnu": "1.13.5", - "@swc/core-linux-arm64-musl": "1.13.5", - "@swc/core-linux-x64-gnu": "1.13.5", - "@swc/core-linux-x64-musl": "1.13.5", - "@swc/core-win32-arm64-msvc": "1.13.5", - "@swc/core-win32-ia32-msvc": "1.13.5", - "@swc/core-win32-x64-msvc": "1.13.5" + "@swc/core-darwin-arm64": "1.15.4", + "@swc/core-darwin-x64": "1.15.4", + "@swc/core-linux-arm-gnueabihf": "1.15.4", + "@swc/core-linux-arm64-gnu": "1.15.4", + "@swc/core-linux-arm64-musl": "1.15.4", + "@swc/core-linux-x64-gnu": "1.15.4", + "@swc/core-linux-x64-musl": "1.15.4", + "@swc/core-win32-arm64-msvc": "1.15.4", + "@swc/core-win32-ia32-msvc": "1.15.4", + "@swc/core-win32-x64-msvc": "1.15.4" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -772,9 +658,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz", - "integrity": "sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.4.tgz", + "integrity": "sha512-NU/Of+ShFGG/i0lXKsF6GaGeTBNsr9iD8uUzdXxFfGbEjTeuKNXc5CWn3/Uo4Gr4LMAGD3hsRwG2Jq5iBDMalw==", "cpu": [ "arm64" ], @@ -789,9 +675,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz", - "integrity": "sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-darwin-x64/-/core-darwin-x64-1.15.4.tgz", + "integrity": "sha512-9oWYMZHiEfHLqjjRGrXL17I8HdAOpWK/Rps34RKQ74O+eliygi1Iyq1TDUzYqUXcNvqN2K5fHgoMLRIni41ClQ==", "cpu": [ "x64" ], @@ -806,9 +692,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz", - "integrity": "sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.4.tgz", + "integrity": "sha512-I1dPxXli3N1Vr71JXogUTLcspM5ICgCYaA16RE+JKchj3XKKmxLlYjwAHAA4lh/Cy486ikzACaG6pIBcegoGkg==", "cpu": [ "arm" ], @@ -823,9 +709,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz", - "integrity": "sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.4.tgz", + "integrity": "sha512-iGpuS/2PDZ68ioAlhkxiN5M4+pB9uDJolTKk4mZ0JM29uFf9YIkiyk7Bbr2y1QtmD82rF0tDHhoG9jtnV8mZMg==", "cpu": [ "arm64" ], @@ -840,9 +726,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz", - "integrity": "sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.4.tgz", + "integrity": "sha512-Ly95wc+VXDhl08pjAoPUhVu5vNbuPMbURknRZa5QOZuiizJ6DkaSI0/zsEc26PpC6HTc4prNLY3ARVwZ7j/IJQ==", "cpu": [ "arm64" ], @@ -857,9 +743,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz", - "integrity": "sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.4.tgz", + "integrity": "sha512-7pIG0BnaMn4zTpHeColPwyrWoTY9Drr+ISZQIgYHUKh3oaPtNCrXb289ScGbPPPjLsSfcGTeOy2pXmNczMC+yg==", "cpu": [ "x64" ], @@ -874,9 +760,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz", - "integrity": "sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.4.tgz", + "integrity": "sha512-oaqTV25V9H+PpSkvTcK25q6Q56FvXc6d2xBu486dv9LAPCHWgeAworE8WpBLV26g8rubcN5nGhO5HwSunXA7Ww==", "cpu": [ "x64" ], @@ -891,9 +777,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz", - "integrity": "sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.4.tgz", + "integrity": "sha512-VcPuUJw27YbGo1HcOaAriI50dpM3ZZeDW3x2cMnJW6vtkeyzUFk1TADmTwFax0Fn+yicCxhaWjnFE3eAzGAxIQ==", "cpu": [ "arm64" ], @@ -908,9 +794,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz", - "integrity": "sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.4.tgz", + "integrity": "sha512-dREjghAZEuKAK9nQzJETAiCSihSpAVS6Vk9+y2ElaoeTj68tNB1txV/m1RTPPD/+Kgbz6ITPNyXRWxPdkP5aXw==", "cpu": [ "ia32" ], @@ -925,9 +811,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz", - "integrity": "sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==", + "version": "1.15.4", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.4.tgz", + "integrity": "sha512-o/odIBuQkoxKbRweJWOMI9LeRSOenFKN2zgPeaaNQ/cyuVk2r6DCAobKMOodvDdZWlMn6N1xJrldeCRSTZIgiQ==", "cpu": [ "x64" ], @@ -943,14 +829,14 @@ }, "node_modules/@swc/counter": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/counter/-/counter-0.1.3.tgz", "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", "dev": true, "license": "Apache-2.0" }, "node_modules/@swc/types": { "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@swc/types/-/types-0.1.25.tgz", "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", "dev": true, "license": "Apache-2.0", @@ -959,9 +845,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "version": "1.0.12", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", "dev": true, "license": "MIT", "optional": true, @@ -969,7 +855,7 @@ }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, "license": "MIT", @@ -978,7 +864,7 @@ }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, "license": "MIT", @@ -987,7 +873,7 @@ }, "node_modules/@tsconfig/node16": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, "license": "MIT", @@ -996,14 +882,14 @@ }, "node_modules/@types/chai": { "version": "4.3.20", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/chai/-/chai-4.3.20.tgz", "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", "dev": true, "license": "MIT" }, "node_modules/@types/chai-as-promised": { "version": "7.1.8", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, "license": "MIT", @@ -1013,7 +899,7 @@ }, "node_modules/@types/expect": { "version": "24.3.2", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-24.3.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/expect/-/expect-24.3.2.tgz", "integrity": "sha512-5ev4tL5eBuX9wyC/SFHku1Sizyerg457LiwMgde3sq61TMHbnKjikzwsBLxLpFMflvKuWXfWVW0w3hZg4qml9w==", "deprecated": "This is a stub types definition. expect provides its own type definitions, so you do not need this installed.", "dev": true, @@ -1024,14 +910,14 @@ }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "license": "MIT", @@ -1041,7 +927,7 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "license": "MIT", @@ -1051,7 +937,7 @@ }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, "license": "MIT", @@ -1059,39 +945,39 @@ }, "node_modules/@types/mocha": { "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/mocha/-/mocha-10.0.10.tgz", "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "24.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.0.tgz", - "integrity": "sha512-y1dMvuvJspJiPSDZUQ+WMBvF7dpnEqN4x9DDC9ie5Fs/HUZJA3wFp7EhHoVaKX/iI0cRoECV8X2jL8zi0xrHCg==", + "version": "25.0.2", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/node/-/node-25.0.2.tgz", + "integrity": "sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.12.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/stack-utils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, "license": "MIT" }, "node_modules/@types/url-parse": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/url-parse/-/url-parse-1.4.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/url-parse/-/url-parse-1.4.4.tgz", "integrity": "sha512-KtQLad12+4T/NfSxpoDhmr22+fig3T7/08QCgmutYA6QSznSRmEtuL95GrhVV40/0otTEdFc+etRcCTqhh1q5Q==", "dev": true, "license": "MIT" }, "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "version": "17.0.35", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, "license": "MIT", "dependencies": { @@ -1100,14 +986,14 @@ }, "node_modules/@types/yargs-parser": { "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, "license": "MIT" }, "node_modules/acorn": { "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", @@ -1122,7 +1008,7 @@ }, "node_modules/acorn-walk": { "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", @@ -1137,7 +1023,7 @@ }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "license": "MIT", @@ -1147,7 +1033,7 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", @@ -1157,7 +1043,7 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", @@ -1173,14 +1059,14 @@ }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true, "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", @@ -1194,7 +1080,7 @@ }, "node_modules/anymatch/node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", @@ -1207,7 +1093,7 @@ }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, "license": "MIT", @@ -1216,14 +1102,14 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "license": "MIT", @@ -1233,7 +1119,7 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/arrify/-/arrify-1.0.1.tgz", "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "license": "MIT", @@ -1243,7 +1129,7 @@ }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "license": "MIT", @@ -1253,14 +1139,14 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "license": "MIT", @@ -1273,7 +1159,7 @@ }, "node_modules/brace-expansion": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/brace-expansion/-/brace-expansion-2.0.2.tgz", "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", @@ -1283,7 +1169,7 @@ }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", @@ -1296,21 +1182,21 @@ }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true, "license": "ISC" }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, "license": "MIT" }, "node_modules/bundle-require": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.2.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/bundle-require/-/bundle-require-4.2.1.tgz", "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==", "dev": true, "license": "MIT", @@ -1326,7 +1212,7 @@ }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, "license": "MIT", @@ -1336,7 +1222,7 @@ }, "node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", @@ -1349,7 +1235,7 @@ }, "node_modules/chai": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/chai/-/chai-4.5.0.tgz", "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "license": "MIT", @@ -1368,7 +1254,7 @@ }, "node_modules/chai-as-promised": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/chai-as-promised/-/chai-as-promised-7.1.2.tgz", "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, "license": "WTFPL", @@ -1381,7 +1267,7 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", @@ -1398,7 +1284,7 @@ }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/check-error/-/check-error-1.0.3.tgz", "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, "license": "MIT", @@ -1411,7 +1297,7 @@ }, "node_modules/chokidar": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", @@ -1435,9 +1321,9 @@ } }, "node_modules/ci-info": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", - "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", + "version": "4.3.1", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", "dev": true, "funding": [ { @@ -1452,7 +1338,7 @@ }, "node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "license": "ISC", @@ -1464,7 +1350,7 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", @@ -1477,14 +1363,14 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, "license": "MIT", @@ -1494,7 +1380,7 @@ }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "license": "MIT", @@ -1503,7 +1389,7 @@ }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", @@ -1518,7 +1404,7 @@ }, "node_modules/debug": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", @@ -1536,7 +1422,7 @@ }, "node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, "license": "MIT", @@ -1549,7 +1435,7 @@ }, "node_modules/deep-eql": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/deep-eql/-/deep-eql-4.1.4.tgz", "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, "license": "MIT", @@ -1562,7 +1448,7 @@ }, "node_modules/diff": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/diff/-/diff-5.2.0.tgz", "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "license": "BSD-3-Clause", @@ -1572,7 +1458,7 @@ }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "license": "MIT", @@ -1583,29 +1469,22 @@ "node": ">=8" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/es6-promise": { "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "license": "MIT" }, "node_modules/esbuild": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/esbuild/-/esbuild-0.18.20.tgz", "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, @@ -1643,7 +1522,7 @@ }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", @@ -1653,7 +1532,7 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", @@ -1666,7 +1545,7 @@ }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", @@ -1689,18 +1568,18 @@ } }, "node_modules/expect": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz", - "integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.1.2", + "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.1.2", - "jest-message-util": "30.1.0", - "jest-mock": "30.0.5", - "jest-util": "30.0.5" + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1708,7 +1587,7 @@ }, "node_modules/fast-glob": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", @@ -1725,7 +1604,7 @@ }, "node_modules/fastq": { "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/fastq/-/fastq-1.19.1.tgz", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, "license": "ISC", @@ -1733,9 +1612,27 @@ "reusify": "^1.0.4" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", @@ -1748,7 +1645,7 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", @@ -1765,7 +1662,7 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, "license": "BSD-3-Clause", @@ -1773,46 +1670,16 @@ "flat": "cli.js" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, @@ -1827,7 +1694,7 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "license": "ISC", @@ -1837,7 +1704,7 @@ }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "license": "MIT", @@ -1847,7 +1714,7 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", @@ -1860,7 +1727,7 @@ }, "node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, @@ -1881,7 +1748,7 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", @@ -1894,7 +1761,7 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", @@ -1915,14 +1782,14 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, "license": "ISC" }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", @@ -1932,7 +1799,7 @@ }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "license": "MIT", @@ -1942,7 +1809,7 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "license": "Apache-2.0", @@ -1952,7 +1819,7 @@ }, "node_modules/ignore": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", @@ -1962,7 +1829,7 @@ }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, @@ -1974,14 +1841,14 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "license": "ISC" }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "license": "MIT", @@ -1994,7 +1861,7 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", @@ -2004,7 +1871,7 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", @@ -2014,7 +1881,7 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", @@ -2027,7 +1894,7 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", @@ -2037,7 +1904,7 @@ }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, "license": "MIT", @@ -2047,7 +1914,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "license": "MIT", @@ -2060,7 +1927,7 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "license": "MIT", @@ -2073,73 +1940,57 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jest-diff": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", - "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, "license": "MIT", "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.0.5" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "30.1.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", - "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.1.2", - "pretty-format": "30.0.5" + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "30.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", - "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "micromatch": "^4.0.8", - "pretty-format": "30.0.5", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -2148,15 +1999,15 @@ } }, "node_modules/jest-mock": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", - "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-util": "30.0.5" + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -2164,7 +2015,7 @@ }, "node_modules/jest-regex-util": { "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/jest-regex-util/-/jest-regex-util-30.0.1.tgz", "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", @@ -2173,13 +2024,13 @@ } }, "node_modules/jest-util": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", - "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.0.5", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", @@ -2192,7 +2043,7 @@ }, "node_modules/joycon": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/joycon/-/joycon-3.1.1.tgz", "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", "dev": true, "license": "MIT", @@ -2202,15 +2053,15 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2222,7 +2073,7 @@ }, "node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", @@ -2236,7 +2087,7 @@ }, "node_modules/lilconfig": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "license": "MIT", @@ -2249,14 +2100,14 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, "license": "MIT" }, "node_modules/load-tsconfig": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/load-tsconfig/-/load-tsconfig-0.2.5.tgz", "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", "dev": true, "license": "MIT", @@ -2266,7 +2117,7 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", @@ -2282,14 +2133,14 @@ }, "node_modules/lodash.sortby": { "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true, "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "license": "MIT", @@ -2306,7 +2157,7 @@ }, "node_modules/loupe": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/loupe/-/loupe-2.3.7.tgz", "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, "license": "MIT", @@ -2314,30 +2165,23 @@ "get-func-name": "^2.0.1" } }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, "license": "ISC" }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", @@ -2347,7 +2191,7 @@ }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", @@ -2361,7 +2205,7 @@ }, "node_modules/micromatch/node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", @@ -2374,7 +2218,7 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "license": "MIT", @@ -2384,7 +2228,7 @@ }, "node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", @@ -2397,7 +2241,7 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", @@ -2405,19 +2249,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", @@ -2430,7 +2264,7 @@ }, "node_modules/mocha": { "version": "10.8.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/mocha/-/mocha-10.8.2.tgz", "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "license": "MIT", @@ -2466,7 +2300,7 @@ }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", @@ -2482,14 +2316,14 @@ }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, "node_modules/mz": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "license": "MIT", @@ -2501,7 +2335,7 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", @@ -2511,7 +2345,7 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "license": "MIT", @@ -2524,7 +2358,7 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "license": "MIT", @@ -2534,7 +2368,7 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "license": "ISC", @@ -2544,7 +2378,7 @@ }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", @@ -2560,7 +2394,7 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", @@ -2576,7 +2410,7 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", @@ -2590,16 +2424,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", @@ -2609,7 +2436,7 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", @@ -2617,26 +2444,9 @@ "node": ">=8" } }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "license": "MIT", @@ -2646,7 +2456,7 @@ }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "license": "MIT", @@ -2656,14 +2466,14 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", @@ -2676,7 +2486,7 @@ }, "node_modules/pirates": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/pirates/-/pirates-4.0.7.tgz", "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", @@ -2685,9 +2495,9 @@ } }, "node_modules/pretty-format": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", - "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "version": "30.2.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -2701,7 +2511,7 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", @@ -2714,7 +2524,7 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", @@ -2724,13 +2534,13 @@ }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ @@ -2751,7 +2561,7 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "license": "MIT", @@ -2761,14 +2571,14 @@ }, "node_modules/react-is": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", @@ -2781,7 +2591,7 @@ }, "node_modules/readdirp/node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", @@ -2794,7 +2604,7 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "license": "MIT", @@ -2804,13 +2614,13 @@ }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "license": "MIT" }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", @@ -2820,7 +2630,7 @@ }, "node_modules/reusify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", @@ -2831,7 +2641,7 @@ }, "node_modules/rollup": { "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/rollup/-/rollup-3.29.5.tgz", "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "dev": true, "license": "MIT", @@ -2848,7 +2658,7 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ @@ -2872,7 +2682,7 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ @@ -2893,7 +2703,7 @@ }, "node_modules/serialize-javascript": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", @@ -2903,7 +2713,7 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", @@ -2916,7 +2726,7 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", @@ -2926,14 +2736,14 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", @@ -2943,7 +2753,7 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", @@ -2953,7 +2763,7 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "license": "MIT", @@ -2964,7 +2774,7 @@ }, "node_modules/stack-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "license": "MIT", @@ -2977,7 +2787,7 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", @@ -2987,23 +2797,7 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", @@ -3018,21 +2812,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", @@ -3045,7 +2825,7 @@ }, "node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", @@ -3056,7 +2836,7 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", @@ -3066,7 +2846,7 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", @@ -3078,18 +2858,18 @@ } }, "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "version": "3.35.1", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { @@ -3100,46 +2880,9 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", @@ -3152,7 +2895,7 @@ }, "node_modules/thenify": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, "license": "MIT", @@ -3162,7 +2905,7 @@ }, "node_modules/thenify-all": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, "license": "MIT", @@ -3173,9 +2916,26 @@ "node": ">=0.8" } }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", @@ -3188,7 +2948,7 @@ }, "node_modules/tr46": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dev": true, "license": "MIT", @@ -3198,7 +2958,7 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "license": "MIT", @@ -3208,14 +2968,14 @@ }, "node_modules/ts-interface-checker": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true, "license": "Apache-2.0" }, "node_modules/ts-mocha": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ts-mocha/-/ts-mocha-10.1.0.tgz", "integrity": "sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA==", "dev": true, "license": "MIT", @@ -3237,7 +2997,7 @@ }, "node_modules/ts-node": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ts-node/-/ts-node-7.0.1.tgz", "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, "license": "MIT", @@ -3260,7 +3020,7 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, "license": "BSD-3-Clause", @@ -3270,7 +3030,7 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "license": "MIT", @@ -3284,7 +3044,7 @@ }, "node_modules/tsup": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-7.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/tsup/-/tsup-7.2.0.tgz", "integrity": "sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==", "dev": true, "license": "MIT", @@ -3330,7 +3090,7 @@ }, "node_modules/tsup/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", @@ -3342,7 +3102,7 @@ }, "node_modules/tsup/node_modules/postcss-load-config": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, "funding": [ @@ -3378,7 +3138,7 @@ }, "node_modules/tsup/node_modules/source-map": { "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "deprecated": "The work that was done in this beta branch won't be included in future versions", "dev": true, @@ -3392,7 +3152,7 @@ }, "node_modules/tsup/node_modules/ts-node": { "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", @@ -3438,7 +3198,7 @@ }, "node_modules/tsup/node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "license": "MIT", @@ -3450,7 +3210,7 @@ }, "node_modules/type-detect": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/type-detect/-/type-detect-4.1.0.tgz", "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, "license": "MIT", @@ -3460,7 +3220,7 @@ }, "node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "license": "Apache-2.0", @@ -3473,15 +3233,15 @@ } }, "node_modules/undici-types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", - "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", + "version": "7.16.0", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "license": "MIT", "dependencies": { @@ -3491,7 +3251,7 @@ }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, "license": "MIT", @@ -3500,20 +3260,20 @@ }, "node_modules/webidl-conversions": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true, "license": "BSD-2-Clause" }, "node_modules/whatwg-fetch": { "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", "license": "MIT" }, "node_modules/whatwg-url": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, "license": "MIT", @@ -3525,7 +3285,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", @@ -3541,33 +3301,14 @@ }, "node_modules/workerpool": { "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/workerpool/-/workerpool-6.5.1.tgz", "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true, "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", @@ -3585,14 +3326,14 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "license": "ISC", @@ -3601,9 +3342,9 @@ } }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.8.2", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, "license": "ISC", "bin": { @@ -3611,11 +3352,14 @@ }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "license": "MIT", @@ -3634,7 +3378,7 @@ }, "node_modules/yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "license": "ISC", @@ -3644,7 +3388,7 @@ }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "license": "MIT", @@ -3660,7 +3404,7 @@ }, "node_modules/yn": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yn/-/yn-2.0.0.tgz", "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", "dev": true, "license": "MIT", @@ -3670,7 +3414,7 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://jfrog-colo.corp.thoughtspot.com/artifactory/api/npm/npm-virtual/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", diff --git a/sdks/typescript/package.json b/sdks/typescript/package.json index ed6231f1a..84ad2418b 100644 --- a/sdks/typescript/package.json +++ b/sdks/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@thoughtspot/rest-api-sdk", - "version": "2.17.1", + "version": "2.20.0", "description": "Api sdk for thoughtspot's public v2 rest api", "keywords": [ "fetch", diff --git a/sdks/typescript/types/ObjectParamAPI.ts b/sdks/typescript/types/ObjectParamAPI.ts index b042b5037..6bd274665 100644 --- a/sdks/typescript/types/ObjectParamAPI.ts +++ b/sdks/typescript/types/ObjectParamAPI.ts @@ -1,6 +1,7 @@ import { ResponseContext, RequestContext, HttpFile } from '../http/http'; import { Configuration} from '../configuration' +import { AIContext } from '../models/AIContext'; import { APIKey } from '../models/APIKey'; import { APIKeyInput } from '../models/APIKeyInput'; import { AccessToken } from '../models/AccessToken'; @@ -11,7 +12,9 @@ import { ActionDetails } from '../models/ActionDetails'; import { ActionDetailsInput } from '../models/ActionDetailsInput'; import { ActionDetailsInputCreate } from '../models/ActionDetailsInputCreate'; import { ActivateUserRequest } from '../models/ActivateUserRequest'; +import { AgentConversation } from '../models/AgentConversation'; import { AnswerContent } from '../models/AnswerContent'; +import { AnswerContextInput } from '../models/AnswerContextInput'; import { AnswerDataResponse } from '../models/AnswerDataResponse'; import { AssignChangeAuthorRequest } from '../models/AssignChangeAuthorRequest'; import { AssignTagRequest } from '../models/AssignTagRequest'; @@ -43,12 +46,19 @@ import { CommitFileType } from '../models/CommitFileType'; import { CommitHistoryResponse } from '../models/CommitHistoryResponse'; import { CommitResponse } from '../models/CommitResponse'; import { CommiterType } from '../models/CommiterType'; +import { CommunicationChannelPreferencesResponse } from '../models/CommunicationChannelPreferencesResponse'; +import { ConfigureCommunicationChannelPreferencesRequest } from '../models/ConfigureCommunicationChannelPreferencesRequest'; import { ConnectionConfigurationResponse } from '../models/ConnectionConfigurationResponse'; import { ConnectionConfigurationSearchRequest } from '../models/ConnectionConfigurationSearchRequest'; import { ConnectionInput } from '../models/ConnectionInput'; +import { ContextPayloadV2Input } from '../models/ContextPayloadV2Input'; import { Conversation } from '../models/Conversation'; +import { ConversationSettingsInput } from '../models/ConversationSettingsInput'; import { ConvertWorksheetToModelRequest } from '../models/ConvertWorksheetToModelRequest'; import { CopyObjectRequest } from '../models/CopyObjectRequest'; +import { CreateAgentConversationRequest } from '../models/CreateAgentConversationRequest'; +import { CreateAgentConversationRequestConversationSettings } from '../models/CreateAgentConversationRequestConversationSettings'; +import { CreateAgentConversationRequestMetadataContext } from '../models/CreateAgentConversationRequestMetadataContext'; import { CreateCalendarRequest } from '../models/CreateCalendarRequest'; import { CreateCalendarRequestTableReference } from '../models/CreateCalendarRequestTableReference'; import { CreateConfigRequest } from '../models/CreateConfigRequest'; @@ -73,9 +83,14 @@ import { CreateTagRequest } from '../models/CreateTagRequest'; import { CreateUserGroupRequest } from '../models/CreateUserGroupRequest'; import { CreateUserRequest } from '../models/CreateUserRequest'; import { CreateVariableRequest } from '../models/CreateVariableRequest'; +import { CreateWebhookConfigurationRequest } from '../models/CreateWebhookConfigurationRequest'; +import { CreateWebhookConfigurationRequestAuthentication } from '../models/CreateWebhookConfigurationRequestAuthentication'; +import { CreateWebhookConfigurationRequestSignatureVerification } from '../models/CreateWebhookConfigurationRequestSignatureVerification'; import { CronExpression } from '../models/CronExpression'; import { CronExpressionInput } from '../models/CronExpressionInput'; import { CustomActionMetadataTypeInput } from '../models/CustomActionMetadataTypeInput'; +import { DataSource } from '../models/DataSource'; +import { DataSourceContextInput } from '../models/DataSourceContextInput'; import { DataWarehouseObjectInput } from '../models/DataWarehouseObjectInput'; import { DataWarehouseObjects } from '../models/DataWarehouseObjects'; import { Database } from '../models/Database'; @@ -91,12 +106,21 @@ import { DeleteConnectionRequest } from '../models/DeleteConnectionRequest'; import { DeleteMetadataRequest } from '../models/DeleteMetadataRequest'; import { DeleteMetadataTypeInput } from '../models/DeleteMetadataTypeInput'; import { DeleteOrgEmailCustomizationRequest } from '../models/DeleteOrgEmailCustomizationRequest'; +import { DeleteWebhookConfigurationsRequest } from '../models/DeleteWebhookConfigurationsRequest'; import { DeployCommitRequest } from '../models/DeployCommitRequest'; import { DeployResponse } from '../models/DeployResponse'; +import { EntityHeader } from '../models/EntityHeader'; import { ErrorResponse } from '../models/ErrorResponse'; +import { EurekaDataSourceSuggestionResponse } from '../models/EurekaDataSourceSuggestionResponse'; import { EurekaDecomposeQueryResponse } from '../models/EurekaDecomposeQueryResponse'; +import { EurekaGetNLInstructionsResponse } from '../models/EurekaGetNLInstructionsResponse'; +import { EurekaGetRelevantQuestionsResponse } from '../models/EurekaGetRelevantQuestionsResponse'; import { EurekaLLMDecomposeQueryResponse } from '../models/EurekaLLMDecomposeQueryResponse'; import { EurekaLLMSuggestedQuery } from '../models/EurekaLLMSuggestedQuery'; +import { EurekaRelevantQuestion } from '../models/EurekaRelevantQuestion'; +import { EurekaSetNLInstructionsResponse } from '../models/EurekaSetNLInstructionsResponse'; +import { EventChannelConfig } from '../models/EventChannelConfig'; +import { EventChannelConfigInput } from '../models/EventChannelConfigInput'; import { ExcludeMetadataListItemInput } from '../models/ExcludeMetadataListItemInput'; import { ExportAnswerReportRequest } from '../models/ExportAnswerReportRequest'; import { ExportAnswerReportRequestRegionalSettings } from '../models/ExportAnswerReportRequestRegionalSettings'; @@ -130,9 +154,14 @@ import { GenerateCSVRequest } from '../models/GenerateCSVRequest'; import { GenericInfo } from '../models/GenericInfo'; import { GetAsyncImportStatusResponse } from '../models/GetAsyncImportStatusResponse'; import { GetCustomAccessTokenRequest } from '../models/GetCustomAccessTokenRequest'; +import { GetDataSourceSuggestionsRequest } from '../models/GetDataSourceSuggestionsRequest'; import { GetFullAccessTokenRequest } from '../models/GetFullAccessTokenRequest'; import { GetFullAccessTokenRequestUserParameters } from '../models/GetFullAccessTokenRequestUserParameters'; +import { GetNLInstructionsRequest } from '../models/GetNLInstructionsRequest'; import { GetObjectAccessTokenRequest } from '../models/GetObjectAccessTokenRequest'; +import { GetRelevantQuestionsRequest } from '../models/GetRelevantQuestionsRequest'; +import { GetRelevantQuestionsRequestAiContext } from '../models/GetRelevantQuestionsRequestAiContext'; +import { GetRelevantQuestionsRequestMetadataContext } from '../models/GetRelevantQuestionsRequestMetadataContext'; import { GetTokenResponse } from '../models/GetTokenResponse'; import { GroupObject } from '../models/GroupObject'; import { GroupsImportListInput } from '../models/GroupsImportListInput'; @@ -148,11 +177,11 @@ import { ImportUserType } from '../models/ImportUserType'; import { ImportUsersRequest } from '../models/ImportUsersRequest'; import { ImportUsersResponse } from '../models/ImportUsersResponse'; import { InputEurekaNLSRequest } from '../models/InputEurekaNLSRequest'; -import { InputVariableValue } from '../models/InputVariableValue'; import { JWTMetadataObject } from '../models/JWTMetadataObject'; import { JWTParameter } from '../models/JWTParameter'; import { JWTUserOptions } from '../models/JWTUserOptions'; import { JWTUserOptionsFull } from '../models/JWTUserOptionsFull'; +import { LBContextInput } from '../models/LBContextInput'; import { LiveboardContent } from '../models/LiveboardContent'; import { LiveboardDataResponse } from '../models/LiveboardDataResponse'; import { LiveboardOptions } from '../models/LiveboardOptions'; @@ -160,6 +189,7 @@ import { LiveboardOptionsInput } from '../models/LiveboardOptionsInput'; import { LogResponse } from '../models/LogResponse'; import { LoginRequest } from '../models/LoginRequest'; import { MetadataAssociationItem } from '../models/MetadataAssociationItem'; +import { MetadataContext } from '../models/MetadataContext'; import { MetadataInput } from '../models/MetadataInput'; import { MetadataListItemInput } from '../models/MetadataListItemInput'; import { MetadataObject } from '../models/MetadataObject'; @@ -167,9 +197,15 @@ import { MetadataResponse } from '../models/MetadataResponse'; import { MetadataSearchResponse } from '../models/MetadataSearchResponse'; import { MetadataSearchSortOptions } from '../models/MetadataSearchSortOptions'; import { ModelTableList } from '../models/ModelTableList'; +import { NLInstructionsInfo } from '../models/NLInstructionsInfo'; +import { NLInstructionsInfoInput } from '../models/NLInstructionsInfoInput'; import { ObjectIDAndName } from '../models/ObjectIDAndName'; import { Org } from '../models/Org'; +import { OrgChannelConfigInput } from '../models/OrgChannelConfigInput'; +import { OrgChannelConfigResponse } from '../models/OrgChannelConfigResponse'; +import { OrgDetails } from '../models/OrgDetails'; import { OrgInfo } from '../models/OrgInfo'; +import { OrgPreferenceSearchCriteriaInput } from '../models/OrgPreferenceSearchCriteriaInput'; import { OrgResponse } from '../models/OrgResponse'; import { OrgType } from '../models/OrgType'; import { ParameterValues } from '../models/ParameterValues'; @@ -231,6 +267,7 @@ import { Scope } from '../models/Scope'; import { SearchCalendarsRequest } from '../models/SearchCalendarsRequest'; import { SearchCalendarsRequestSortOptions } from '../models/SearchCalendarsRequestSortOptions'; import { SearchCommitsRequest } from '../models/SearchCommitsRequest'; +import { SearchCommunicationChannelPreferencesRequest } from '../models/SearchCommunicationChannelPreferencesRequest'; import { SearchConfigRequest } from '../models/SearchConfigRequest'; import { SearchConnectionRequest } from '../models/SearchConnectionRequest'; import { SearchConnectionRequestSortOptions } from '../models/SearchConnectionRequestSortOptions'; @@ -255,7 +292,13 @@ import { SearchUserGroupsRequestSortOptions } from '../models/SearchUserGroupsRe import { SearchUsersRequest } from '../models/SearchUsersRequest'; import { SearchUsersRequestSortOptions } from '../models/SearchUsersRequestSortOptions'; import { SearchVariablesRequest } from '../models/SearchVariablesRequest'; +import { SearchWebhookConfigurationsRequest } from '../models/SearchWebhookConfigurationsRequest'; +import { SearchWebhookConfigurationsRequestSortOptions } from '../models/SearchWebhookConfigurationsRequestSortOptions'; +import { SendAgentMessageRequest } from '../models/SendAgentMessageRequest'; +import { SendAgentMessageResponse } from '../models/SendAgentMessageResponse'; +import { SendAgentMessageStreamingRequest } from '../models/SendAgentMessageStreamingRequest'; import { SendMessageRequest } from '../models/SendMessageRequest'; +import { SetNLInstructionsRequest } from '../models/SetNLInstructionsRequest'; import { ShareMetadataRequest } from '../models/ShareMetadataRequest'; import { ShareMetadataTypeInput } from '../models/ShareMetadataTypeInput'; import { SharePermissionsInput } from '../models/SharePermissionsInput'; @@ -308,6 +351,7 @@ import { UpdateUserGroupRequest } from '../models/UpdateUserGroupRequest'; import { UpdateUserRequest } from '../models/UpdateUserRequest'; import { UpdateVariableRequest } from '../models/UpdateVariableRequest'; import { UpdateVariableValuesRequest } from '../models/UpdateVariableValuesRequest'; +import { UpdateWebhookConfigurationRequest } from '../models/UpdateWebhookConfigurationRequest'; import { User } from '../models/User'; import { UserGroup } from '../models/UserGroup'; import { UserGroupResponse } from '../models/UserGroupResponse'; @@ -317,14 +361,44 @@ import { UserParameterOptions } from '../models/UserParameterOptions'; import { UserPrincipal } from '../models/UserPrincipal'; import { ValidateMergeRequest } from '../models/ValidateMergeRequest'; import { ValidateTokenRequest } from '../models/ValidateTokenRequest'; +import { ValueScopeInput } from '../models/ValueScopeInput'; import { Variable } from '../models/Variable'; import { VariableDetailInput } from '../models/VariableDetailInput'; +import { VariableUpdateAssignmentInput } from '../models/VariableUpdateAssignmentInput'; +import { VariableUpdateScopeInput } from '../models/VariableUpdateScopeInput'; import { VariableValue } from '../models/VariableValue'; -import { VariableValueInput } from '../models/VariableValueInput'; +import { VariableValues } from '../models/VariableValues'; +import { WebhookAuthApiKey } from '../models/WebhookAuthApiKey'; +import { WebhookAuthApiKeyInput } from '../models/WebhookAuthApiKeyInput'; +import { WebhookAuthBasicAuth } from '../models/WebhookAuthBasicAuth'; +import { WebhookAuthBasicAuthInput } from '../models/WebhookAuthBasicAuthInput'; +import { WebhookAuthOAuth2 } from '../models/WebhookAuthOAuth2'; +import { WebhookAuthOAuth2Input } from '../models/WebhookAuthOAuth2Input'; +import { WebhookAuthentication } from '../models/WebhookAuthentication'; +import { WebhookAuthenticationInput } from '../models/WebhookAuthenticationInput'; +import { WebhookDeleteFailure } from '../models/WebhookDeleteFailure'; +import { WebhookDeleteResponse } from '../models/WebhookDeleteResponse'; +import { WebhookOrg } from '../models/WebhookOrg'; +import { WebhookPagination } from '../models/WebhookPagination'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { WebhookSearchResponse } from '../models/WebhookSearchResponse'; +import { WebhookSignatureVerification } from '../models/WebhookSignatureVerification'; +import { WebhookSignatureVerificationInput } from '../models/WebhookSignatureVerificationInput'; +import { WebhookSortOptionsInput } from '../models/WebhookSortOptionsInput'; +import { WebhookUser } from '../models/WebhookUser'; import { ObservableAIApi } from "./ObservableAPI"; import { AIApiRequestFactory, AIApiResponseProcessor} from "../apis/AIApi"; +export interface AIApiCreateAgentConversationRequest { + /** + * + * @type CreateAgentConversationRequest + * @memberof AIApicreateAgentConversation + */ + createAgentConversationRequest: CreateAgentConversationRequest +} + export interface AIApiCreateConversationRequest { /** * @@ -334,6 +408,33 @@ export interface AIApiCreateConversationRequest { createConversationRequest: CreateConversationRequest } +export interface AIApiGetDataSourceSuggestionsRequest { + /** + * + * @type GetDataSourceSuggestionsRequest + * @memberof AIApigetDataSourceSuggestions + */ + getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest +} + +export interface AIApiGetNLInstructionsRequest { + /** + * + * @type GetNLInstructionsRequest + * @memberof AIApigetNLInstructions + */ + getNLInstructionsRequest: GetNLInstructionsRequest +} + +export interface AIApiGetRelevantQuestionsRequest { + /** + * + * @type GetRelevantQuestionsRequest + * @memberof AIApigetRelevantQuestions + */ + getRelevantQuestionsRequest: GetRelevantQuestionsRequest +} + export interface AIApiQueryGetDecomposedQueryRequest { /** * @@ -343,6 +444,30 @@ export interface AIApiQueryGetDecomposedQueryRequest { queryGetDecomposedQueryRequest: QueryGetDecomposedQueryRequest } +export interface AIApiSendAgentMessageRequest { + /** + * Unique identifier for the conversation (used to track context) + * @type string + * @memberof AIApisendAgentMessage + */ + conversationIdentifier: string + /** + * + * @type SendAgentMessageRequest + * @memberof AIApisendAgentMessage + */ + sendAgentMessageRequest: SendAgentMessageRequest +} + +export interface AIApiSendAgentMessageStreamingRequest { + /** + * + * @type SendAgentMessageStreamingRequest + * @memberof AIApisendAgentMessageStreaming + */ + sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest +} + export interface AIApiSendMessageRequest { /** * Unique identifier of the conversation. @@ -358,6 +483,15 @@ export interface AIApiSendMessageRequest { sendMessageRequest: SendMessageRequest } +export interface AIApiSetNLInstructionsRequest { + /** + * + * @type SetNLInstructionsRequest + * @memberof AIApisetNLInstructions + */ + setNLInstructionsRequest: SetNLInstructionsRequest +} + export interface AIApiSingleAnswerRequest { /** * @@ -374,6 +508,14 @@ export class ObjectAIApi { this.api = new ObservableAIApi(configuration, requestFactory, responseProcessor); } + /** + * Version: 10.13.0.cl or later + * @param param the request object + */ + public createAgentConversation(param: AIApiCreateAgentConversationRequest, options?: Configuration): Promise { + return this.api.createAgentConversation(param.createAgentConversationRequest, options).toPromise(); + } + /** * 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 param the request object @@ -382,6 +524,30 @@ export class ObjectAIApi { return this.api.createConversation(param.createConversationRequest, options).toPromise(); } + /** + * 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 param the request object + */ + public getDataSourceSuggestions(param: AIApiGetDataSourceSuggestionsRequest, options?: Configuration): Promise { + return this.api.getDataSourceSuggestions(param.getDataSourceSuggestionsRequest, options).toPromise(); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param param the request object + */ + public getNLInstructions(param: AIApiGetNLInstructionsRequest, options?: Configuration): Promise { + return this.api.getNLInstructions(param.getNLInstructionsRequest, options).toPromise(); + } + + /** + * 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 param the request object + */ + public getRelevantQuestions(param: AIApiGetRelevantQuestionsRequest, options?: Configuration): Promise { + return this.api.getRelevantQuestions(param.getRelevantQuestionsRequest, options).toPromise(); + } + /** * Version: 10.7.0.cl or later * @param param the request object @@ -390,6 +556,22 @@ export class ObjectAIApi { return this.api.queryGetDecomposedQuery(param.queryGetDecomposedQueryRequest, options).toPromise(); } + /** + * 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 param the request object + */ + public sendAgentMessage(param: AIApiSendAgentMessageRequest, options?: Configuration): Promise { + return this.api.sendAgentMessage(param.conversationIdentifier, param.sendAgentMessageRequest, options).toPromise(); + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param param the request object + */ + public sendAgentMessageStreaming(param: AIApiSendAgentMessageStreamingRequest, options?: Configuration): Promise { + return this.api.sendAgentMessageStreaming(param.sendAgentMessageStreamingRequest, options).toPromise(); + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param param the request object @@ -398,6 +580,14 @@ export class ObjectAIApi { return this.api.sendMessage(param.conversationIdentifier, param.sendMessageRequest, options).toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param param the request object + */ + public setNLInstructions(param: AIApiSetNLInstructionsRequest, options?: Configuration): Promise { + return this.api.setNLInstructions(param.setNLInstructionsRequest, options).toPromise(); + } + /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param param the request object @@ -498,7 +688,7 @@ export class ObjectAuthenticationApi { } /** - * 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. * @param param the request object */ public getCustomAccessToken(param: AuthenticationApiGetCustomAccessTokenRequest, options?: Configuration): Promise { @@ -616,7 +806,7 @@ export class ObjectConnectionConfigurationsApi { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param param the request object */ public createConnectionConfiguration(param: ConnectionConfigurationsApiCreateConnectionConfigurationRequest, options?: Configuration): Promise { @@ -632,7 +822,7 @@ export class ObjectConnectionConfigurationsApi { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param param the request object */ public updateConnectionConfiguration(param: ConnectionConfigurationsApiUpdateConnectionConfigurationRequest, options?: Configuration): Promise { @@ -786,7 +976,7 @@ export class ObjectConnectionsApi { } /** - * 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\":[ ] } ``` * @param param the request object */ public updateConnectionV2(param: ConnectionsApiUpdateConnectionV2Request, options?: Configuration): Promise { @@ -1073,19 +1263,19 @@ export interface DBTApiDbtGenerateTmlRequest { */ dbtConnectionIdentifier: string /** - * Mention the worksheet tmls to import + * List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @type string * @memberof DBTApidbtGenerateTml */ - importWorksheets: string + modelTables: string /** - * List of Models and their respective Tables + * Mention the worksheet tmls to import * @type string * @memberof DBTApidbtGenerateTml */ - modelTables?: string + importWorksheets: string /** - * List of worksheets is mandatory when import_Worksheets is type SELECTED + * List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @type string * @memberof DBTApidbtGenerateTml */ @@ -1207,7 +1397,7 @@ export class ObjectDBTApi { * @param param the request object */ public dbtGenerateTml(param: DBTApiDbtGenerateTmlRequest, options?: Configuration): Promise { - return this.api.dbtGenerateTml(param.dbtConnectionIdentifier, param.importWorksheets, param.modelTables, param.worksheets, param.fileContent, options).toPromise(); + return this.api.dbtGenerateTml(param.dbtConnectionIdentifier, param.modelTables, param.importWorksheets, param.worksheets, param.fileContent, options).toPromise(); } /** @@ -1358,7 +1548,7 @@ export class ObjectEmailCustomizationApi { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param param the request object */ public createEmailCustomization(param: EmailCustomizationApiCreateEmailCustomizationRequest, options?: Configuration): Promise { @@ -1390,7 +1580,7 @@ export class ObjectEmailCustomizationApi { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param param the request object */ public updateEmailCustomization(param: EmailCustomizationApiUpdateEmailCustomizationRequest, options?: Configuration): Promise { @@ -1693,7 +1883,7 @@ export class ObjectMetadataApi { } /** - * 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. * @param param the request object */ public copyObject(param: MetadataApiCopyObjectRequest, options?: Configuration): Promise { @@ -1765,7 +1955,7 @@ export class ObjectMetadataApi { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param param the request object */ public parameterizeMetadata(param: MetadataApiParameterizeMetadataRequest, options?: Configuration): Promise { @@ -1781,7 +1971,7 @@ export class ObjectMetadataApi { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param param the request object */ public unparameterizeMetadata(param: MetadataApiUnparameterizeMetadataRequest, options?: Configuration): Promise { @@ -1929,7 +2119,7 @@ export class ObjectReportsApi { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param param the request object */ public exportLiveboardReport(param: ReportsApiExportLiveboardReportRequest, options?: Configuration): Promise { @@ -2261,6 +2451,15 @@ export class ObjectSecurityApi { import { ObservableSystemApi } from "./ObservableAPI"; import { SystemApiRequestFactory, SystemApiResponseProcessor} from "../apis/SystemApi"; +export interface SystemApiConfigureCommunicationChannelPreferencesRequest { + /** + * + * @type ConfigureCommunicationChannelPreferencesRequest + * @memberof SystemApiconfigureCommunicationChannelPreferences + */ + configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest +} + export interface SystemApiGetSystemConfigRequest { } @@ -2270,6 +2469,15 @@ export interface SystemApiGetSystemInformationRequest { export interface SystemApiGetSystemOverrideInfoRequest { } +export interface SystemApiSearchCommunicationChannelPreferencesRequest { + /** + * + * @type SearchCommunicationChannelPreferencesRequest + * @memberof SystemApisearchCommunicationChannelPreferences + */ + searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest +} + export interface SystemApiUpdateSystemConfigRequest { /** * @@ -2286,6 +2494,14 @@ export class ObjectSystemApi { this.api = new ObservableSystemApi(configuration, requestFactory, responseProcessor); } + /** + * 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. + * @param param the request object + */ + public configureCommunicationChannelPreferences(param: SystemApiConfigureCommunicationChannelPreferencesRequest, options?: Configuration): Promise { + return this.api.configureCommunicationChannelPreferences(param.configureCommunicationChannelPreferencesRequest, options).toPromise(); + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. * @param param the request object @@ -2310,6 +2526,14 @@ export class ObjectSystemApi { return this.api.getSystemOverrideInfo( options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public searchCommunicationChannelPreferences(param: SystemApiSearchCommunicationChannelPreferencesRequest, options?: Configuration): Promise { + return this.api.searchCommunicationChannelPreferences(param.searchCommunicationChannelPreferencesRequest, options).toPromise(); + } + /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param param the request object @@ -2488,6 +2712,15 @@ export interface ThoughtSpotRestApiCommitBranchRequest { commitBranchRequest: CommitBranchRequest } +export interface ThoughtSpotRestApiConfigureCommunicationChannelPreferencesRequest { + /** + * + * @type ConfigureCommunicationChannelPreferencesRequest + * @memberof ThoughtSpotRestApiconfigureCommunicationChannelPreferences + */ + configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest +} + export interface ThoughtSpotRestApiConnectionConfigurationSearchRequest { /** * @@ -2515,6 +2748,15 @@ export interface ThoughtSpotRestApiCopyObjectRequest { copyObjectRequest: CopyObjectRequest } +export interface ThoughtSpotRestApiCreateAgentConversationRequest { + /** + * + * @type CreateAgentConversationRequest + * @memberof ThoughtSpotRestApicreateAgentConversation + */ + createAgentConversationRequest: CreateAgentConversationRequest +} + export interface ThoughtSpotRestApiCreateCalendarRequest { /** * @@ -2641,6 +2883,15 @@ export interface ThoughtSpotRestApiCreateVariableRequest { createVariableRequest: CreateVariableRequest } +export interface ThoughtSpotRestApiCreateWebhookConfigurationRequest { + /** + * + * @type CreateWebhookConfigurationRequest + * @memberof ThoughtSpotRestApicreateWebhookConfiguration + */ + createWebhookConfigurationRequest: CreateWebhookConfigurationRequest +} + export interface ThoughtSpotRestApiDbtConnectionRequest { /** * Name of the connection. @@ -2727,19 +2978,19 @@ export interface ThoughtSpotRestApiDbtGenerateTmlRequest { */ dbtConnectionIdentifier: string /** - * Mention the worksheet tmls to import + * List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @type string * @memberof ThoughtSpotRestApidbtGenerateTml */ - importWorksheets: string + modelTables: string /** - * List of Models and their respective Tables + * Mention the worksheet tmls to import * @type string * @memberof ThoughtSpotRestApidbtGenerateTml */ - modelTables?: string + importWorksheets: string /** - * List of worksheets is mandatory when import_Worksheets is type SELECTED + * List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @type string * @memberof ThoughtSpotRestApidbtGenerateTml */ @@ -2917,6 +3168,15 @@ export interface ThoughtSpotRestApiDeleteVariableRequest { identifier: string } +export interface ThoughtSpotRestApiDeleteWebhookConfigurationsRequest { + /** + * + * @type DeleteWebhookConfigurationsRequest + * @memberof ThoughtSpotRestApideleteWebhookConfigurations + */ + deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest +} + export interface ThoughtSpotRestApiDeployCommitRequest { /** * @@ -3094,6 +3354,15 @@ export interface ThoughtSpotRestApiGetCustomAccessTokenRequest { getCustomAccessTokenRequest: GetCustomAccessTokenRequest } +export interface ThoughtSpotRestApiGetDataSourceSuggestionsRequest { + /** + * + * @type GetDataSourceSuggestionsRequest + * @memberof ThoughtSpotRestApigetDataSourceSuggestions + */ + getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest +} + export interface ThoughtSpotRestApiGetFullAccessTokenRequest { /** * @@ -3103,6 +3372,15 @@ export interface ThoughtSpotRestApiGetFullAccessTokenRequest { getFullAccessTokenRequest: GetFullAccessTokenRequest } +export interface ThoughtSpotRestApiGetNLInstructionsRequest { + /** + * + * @type GetNLInstructionsRequest + * @memberof ThoughtSpotRestApigetNLInstructions + */ + getNLInstructionsRequest: GetNLInstructionsRequest +} + export interface ThoughtSpotRestApiGetObjectAccessTokenRequest { /** * @@ -3112,6 +3390,15 @@ export interface ThoughtSpotRestApiGetObjectAccessTokenRequest { getObjectAccessTokenRequest: GetObjectAccessTokenRequest } +export interface ThoughtSpotRestApiGetRelevantQuestionsRequest { + /** + * + * @type GetRelevantQuestionsRequest + * @memberof ThoughtSpotRestApigetRelevantQuestions + */ + getRelevantQuestionsRequest: GetRelevantQuestionsRequest +} + export interface ThoughtSpotRestApiGetSystemConfigRequest { } @@ -3247,6 +3534,15 @@ export interface ThoughtSpotRestApiSearchCommitsRequest { searchCommitsRequest: SearchCommitsRequest } +export interface ThoughtSpotRestApiSearchCommunicationChannelPreferencesRequest { + /** + * + * @type SearchCommunicationChannelPreferencesRequest + * @memberof ThoughtSpotRestApisearchCommunicationChannelPreferences + */ + searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest +} + export interface ThoughtSpotRestApiSearchConfigRequest { /** * @@ -3364,6 +3660,39 @@ export interface ThoughtSpotRestApiSearchVariablesRequest { searchVariablesRequest: SearchVariablesRequest } +export interface ThoughtSpotRestApiSearchWebhookConfigurationsRequest { + /** + * + * @type SearchWebhookConfigurationsRequest + * @memberof ThoughtSpotRestApisearchWebhookConfigurations + */ + searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest +} + +export interface ThoughtSpotRestApiSendAgentMessageRequest { + /** + * Unique identifier for the conversation (used to track context) + * @type string + * @memberof ThoughtSpotRestApisendAgentMessage + */ + conversationIdentifier: string + /** + * + * @type SendAgentMessageRequest + * @memberof ThoughtSpotRestApisendAgentMessage + */ + sendAgentMessageRequest: SendAgentMessageRequest +} + +export interface ThoughtSpotRestApiSendAgentMessageStreamingRequest { + /** + * + * @type SendAgentMessageStreamingRequest + * @memberof ThoughtSpotRestApisendAgentMessageStreaming + */ + sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest +} + export interface ThoughtSpotRestApiSendMessageRequest { /** * Unique identifier of the conversation. @@ -3379,6 +3708,15 @@ export interface ThoughtSpotRestApiSendMessageRequest { sendMessageRequest: SendMessageRequest } +export interface ThoughtSpotRestApiSetNLInstructionsRequest { + /** + * + * @type SetNLInstructionsRequest + * @memberof ThoughtSpotRestApisetNLInstructions + */ + setNLInstructionsRequest: SetNLInstructionsRequest +} + export interface ThoughtSpotRestApiShareMetadataRequest { /** * @@ -3730,6 +4068,21 @@ export interface ThoughtSpotRestApiUpdateVariableValuesRequest { updateVariableValuesRequest: UpdateVariableValuesRequest } +export interface ThoughtSpotRestApiUpdateWebhookConfigurationRequest { + /** + * Unique ID or name of the webhook configuration. + * @type string + * @memberof ThoughtSpotRestApiupdateWebhookConfiguration + */ + webhookIdentifier: string + /** + * + * @type UpdateWebhookConfigurationRequest + * @memberof ThoughtSpotRestApiupdateWebhookConfiguration + */ + updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest +} + export interface ThoughtSpotRestApiValidateEmailCustomizationRequest { } @@ -3798,6 +4151,14 @@ export class ObjectThoughtSpotRestApi { return this.api.commitBranch(param.commitBranchRequest, options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public configureCommunicationChannelPreferences(param: ThoughtSpotRestApiConfigureCommunicationChannelPreferencesRequest, options?: Configuration): Promise { + return this.api.configureCommunicationChannelPreferences(param.configureCommunicationChannelPreferencesRequest, options).toPromise(); + } + /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param param the request object @@ -3815,13 +4176,21 @@ export class ObjectThoughtSpotRestApi { } /** - * 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. * @param param the request object */ public copyObject(param: ThoughtSpotRestApiCopyObjectRequest, options?: Configuration): Promise { return this.api.copyObject(param.copyObjectRequest, options).toPromise(); } + /** + * Version: 10.13.0.cl or later + * @param param the request object + */ + public createAgentConversation(param: ThoughtSpotRestApiCreateAgentConversationRequest, options?: Configuration): Promise { + return this.api.createAgentConversation(param.createAgentConversationRequest, options).toPromise(); + } + /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param param the request object @@ -3847,7 +4216,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param param the request object */ public createConnectionConfiguration(param: ThoughtSpotRestApiCreateConnectionConfigurationRequest, options?: Configuration): Promise { @@ -3871,7 +4240,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param param the request object */ public createEmailCustomization(param: ThoughtSpotRestApiCreateEmailCustomizationRequest, options?: Configuration): Promise { @@ -3927,13 +4296,21 @@ export class ObjectThoughtSpotRestApi { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param param the request object */ public createVariable(param: ThoughtSpotRestApiCreateVariableRequest, options?: Configuration): Promise { return this.api.createVariable(param.createVariableRequest, options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public createWebhookConfiguration(param: ThoughtSpotRestApiCreateWebhookConfigurationRequest, options?: Configuration): Promise { + return this.api.createWebhookConfiguration(param.createWebhookConfigurationRequest, options).toPromise(); + } + /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param param the request object @@ -3955,7 +4332,7 @@ export class ObjectThoughtSpotRestApi { * @param param the request object */ public dbtGenerateTml(param: ThoughtSpotRestApiDbtGenerateTmlRequest, options?: Configuration): Promise { - return this.api.dbtGenerateTml(param.dbtConnectionIdentifier, param.importWorksheets, param.modelTables, param.worksheets, param.fileContent, options).toPromise(); + return this.api.dbtGenerateTml(param.dbtConnectionIdentifier, param.modelTables, param.importWorksheets, param.worksheets, param.fileContent, options).toPromise(); } /** @@ -4103,13 +4480,21 @@ export class ObjectThoughtSpotRestApi { } /** - * 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 * @param param the request object */ public deleteVariable(param: ThoughtSpotRestApiDeleteVariableRequest, options?: Configuration): Promise { return this.api.deleteVariable(param.identifier, options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public deleteWebhookConfigurations(param: ThoughtSpotRestApiDeleteWebhookConfigurationsRequest, options?: Configuration): Promise { + return this.api.deleteWebhookConfigurations(param.deleteWebhookConfigurationsRequest, options).toPromise(); + } + /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param param the request object @@ -4135,7 +4520,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param param the request object */ public exportLiveboardReport(param: ThoughtSpotRestApiExportLiveboardReportRequest, options?: Configuration): Promise { @@ -4271,13 +4656,21 @@ export class ObjectThoughtSpotRestApi { } /** - * 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. * @param param the request object */ public getCustomAccessToken(param: ThoughtSpotRestApiGetCustomAccessTokenRequest, options?: Configuration): Promise { return this.api.getCustomAccessToken(param.getCustomAccessTokenRequest, options).toPromise(); } + /** + * 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 param the request object + */ + public getDataSourceSuggestions(param: ThoughtSpotRestApiGetDataSourceSuggestionsRequest, options?: Configuration): Promise { + return this.api.getDataSourceSuggestions(param.getDataSourceSuggestionsRequest, options).toPromise(); + } + /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param param the request object @@ -4286,6 +4679,14 @@ export class ObjectThoughtSpotRestApi { return this.api.getFullAccessToken(param.getFullAccessTokenRequest, options).toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param param the request object + */ + public getNLInstructions(param: ThoughtSpotRestApiGetNLInstructionsRequest, options?: Configuration): Promise { + return this.api.getNLInstructions(param.getNLInstructionsRequest, options).toPromise(); + } + /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param param the request object @@ -4294,6 +4695,14 @@ export class ObjectThoughtSpotRestApi { return this.api.getObjectAccessToken(param.getObjectAccessTokenRequest, options).toPromise(); } + /** + * 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 param the request object + */ + public getRelevantQuestions(param: ThoughtSpotRestApiGetRelevantQuestionsRequest, options?: Configuration): Promise { + return this.api.getRelevantQuestions(param.getRelevantQuestionsRequest, options).toPromise(); + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. * @param param the request object @@ -4367,7 +4776,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param param the request object */ public parameterizeMetadata(param: ThoughtSpotRestApiParameterizeMetadataRequest, options?: Configuration): Promise { @@ -4430,6 +4839,14 @@ export class ObjectThoughtSpotRestApi { return this.api.searchCommits(param.searchCommitsRequest, options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public searchCommunicationChannelPreferences(param: ThoughtSpotRestApiSearchCommunicationChannelPreferencesRequest, options?: Configuration): Promise { + return this.api.searchCommunicationChannelPreferences(param.searchCommunicationChannelPreferencesRequest, options).toPromise(); + } + /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param param the request object @@ -4527,13 +4944,37 @@ export class ObjectThoughtSpotRestApi { } /** - * 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 * @param param the request object */ public searchVariables(param: ThoughtSpotRestApiSearchVariablesRequest, options?: Configuration): Promise> { return this.api.searchVariables(param.searchVariablesRequest, options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public searchWebhookConfigurations(param: ThoughtSpotRestApiSearchWebhookConfigurationsRequest, options?: Configuration): Promise { + return this.api.searchWebhookConfigurations(param.searchWebhookConfigurationsRequest, options).toPromise(); + } + + /** + * 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 param the request object + */ + public sendAgentMessage(param: ThoughtSpotRestApiSendAgentMessageRequest, options?: Configuration): Promise { + return this.api.sendAgentMessage(param.conversationIdentifier, param.sendAgentMessageRequest, options).toPromise(); + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param param the request object + */ + public sendAgentMessageStreaming(param: ThoughtSpotRestApiSendAgentMessageStreamingRequest, options?: Configuration): Promise { + return this.api.sendAgentMessageStreaming(param.sendAgentMessageStreamingRequest, options).toPromise(); + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param param the request object @@ -4542,6 +4983,14 @@ export class ObjectThoughtSpotRestApi { return this.api.sendMessage(param.conversationIdentifier, param.sendMessageRequest, options).toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param param the request object + */ + public setNLInstructions(param: ThoughtSpotRestApiSetNLInstructionsRequest, options?: Configuration): Promise { + return this.api.setNLInstructions(param.setNLInstructionsRequest, options).toPromise(); + } + /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param param the request object @@ -4567,7 +5016,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param param the request object */ public unparameterizeMetadata(param: ThoughtSpotRestApiUnparameterizeMetadataRequest, options?: Configuration): Promise { @@ -4615,7 +5064,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param param the request object */ public updateConnectionConfiguration(param: ThoughtSpotRestApiUpdateConnectionConfigurationRequest, options?: Configuration): Promise { @@ -4623,7 +5072,7 @@ export class ObjectThoughtSpotRestApi { } /** - * 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\":[ ] } ``` * @param param the request object */ public updateConnectionV2(param: ThoughtSpotRestApiUpdateConnectionV2Request, options?: Configuration): Promise { @@ -4647,7 +5096,7 @@ export class ObjectThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param param the request object */ public updateEmailCustomization(param: ThoughtSpotRestApiUpdateEmailCustomizationRequest, options?: Configuration): Promise { @@ -4727,7 +5176,7 @@ export class ObjectThoughtSpotRestApi { } /** - * 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 * @param param the request object */ public updateVariable(param: ThoughtSpotRestApiUpdateVariableRequest, options?: Configuration): Promise { @@ -4735,13 +5184,21 @@ export class ObjectThoughtSpotRestApi { } /** - * 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 * @param param the request object */ public updateVariableValues(param: ThoughtSpotRestApiUpdateVariableValuesRequest, options?: Configuration): Promise { return this.api.updateVariableValues(param.updateVariableValuesRequest, options).toPromise(); } + /** + * 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. + * @param param the request object + */ + public updateWebhookConfiguration(param: ThoughtSpotRestApiUpdateWebhookConfigurationRequest, options?: Configuration): Promise { + return this.api.updateWebhookConfiguration(param.webhookIdentifier, param.updateWebhookConfigurationRequest, options).toPromise(); + } + /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. * @param param the request object @@ -5018,7 +5475,7 @@ export class ObjectVariableApi { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param param the request object */ public createVariable(param: VariableApiCreateVariableRequest, options?: Configuration): Promise { @@ -5026,7 +5483,7 @@ export class ObjectVariableApi { } /** - * 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 * @param param the request object */ public deleteVariable(param: VariableApiDeleteVariableRequest, options?: Configuration): Promise { @@ -5034,7 +5491,7 @@ export class ObjectVariableApi { } /** - * 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 * @param param the request object */ public searchVariables(param: VariableApiSearchVariablesRequest, options?: Configuration): Promise> { @@ -5042,7 +5499,7 @@ export class ObjectVariableApi { } /** - * 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 * @param param the request object */ public updateVariable(param: VariableApiUpdateVariableRequest, options?: Configuration): Promise { @@ -5050,7 +5507,7 @@ export class ObjectVariableApi { } /** - * 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 * @param param the request object */ public updateVariableValues(param: VariableApiUpdateVariableValuesRequest, options?: Configuration): Promise { @@ -5229,3 +5686,89 @@ export class ObjectVersionControlApi { } } + +import { ObservableWebhooksApi } from "./ObservableAPI"; +import { WebhooksApiRequestFactory, WebhooksApiResponseProcessor} from "../apis/WebhooksApi"; + +export interface WebhooksApiCreateWebhookConfigurationRequest { + /** + * + * @type CreateWebhookConfigurationRequest + * @memberof WebhooksApicreateWebhookConfiguration + */ + createWebhookConfigurationRequest: CreateWebhookConfigurationRequest +} + +export interface WebhooksApiDeleteWebhookConfigurationsRequest { + /** + * + * @type DeleteWebhookConfigurationsRequest + * @memberof WebhooksApideleteWebhookConfigurations + */ + deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest +} + +export interface WebhooksApiSearchWebhookConfigurationsRequest { + /** + * + * @type SearchWebhookConfigurationsRequest + * @memberof WebhooksApisearchWebhookConfigurations + */ + searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest +} + +export interface WebhooksApiUpdateWebhookConfigurationRequest { + /** + * Unique ID or name of the webhook configuration. + * @type string + * @memberof WebhooksApiupdateWebhookConfiguration + */ + webhookIdentifier: string + /** + * + * @type UpdateWebhookConfigurationRequest + * @memberof WebhooksApiupdateWebhookConfiguration + */ + updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest +} + +export class ObjectWebhooksApi { + private api: ObservableWebhooksApi + + public constructor(configuration: Configuration, requestFactory?: WebhooksApiRequestFactory, responseProcessor?: WebhooksApiResponseProcessor) { + this.api = new ObservableWebhooksApi(configuration, requestFactory, responseProcessor); + } + + /** + * 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. + * @param param the request object + */ + public createWebhookConfiguration(param: WebhooksApiCreateWebhookConfigurationRequest, options?: Configuration): Promise { + return this.api.createWebhookConfiguration(param.createWebhookConfigurationRequest, options).toPromise(); + } + + /** + * 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. + * @param param the request object + */ + public deleteWebhookConfigurations(param: WebhooksApiDeleteWebhookConfigurationsRequest, options?: Configuration): Promise { + return this.api.deleteWebhookConfigurations(param.deleteWebhookConfigurationsRequest, options).toPromise(); + } + + /** + * 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. + * @param param the request object + */ + public searchWebhookConfigurations(param: WebhooksApiSearchWebhookConfigurationsRequest, options?: Configuration): Promise { + return this.api.searchWebhookConfigurations(param.searchWebhookConfigurationsRequest, options).toPromise(); + } + + /** + * 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. + * @param param the request object + */ + public updateWebhookConfiguration(param: WebhooksApiUpdateWebhookConfigurationRequest, options?: Configuration): Promise { + return this.api.updateWebhookConfiguration(param.webhookIdentifier, param.updateWebhookConfigurationRequest, options).toPromise(); + } + +} diff --git a/sdks/typescript/types/ObservableAPI.ts b/sdks/typescript/types/ObservableAPI.ts index be375af2c..4faa5402b 100644 --- a/sdks/typescript/types/ObservableAPI.ts +++ b/sdks/typescript/types/ObservableAPI.ts @@ -2,6 +2,7 @@ import { ResponseContext, RequestContext, HttpFile } from '../http/http'; import { Configuration} from '../configuration' import { Observable, of, from } from '../rxjsStub'; import {mergeMap, map} from '../rxjsStub'; +import { AIContext } from '../models/AIContext'; import { APIKey } from '../models/APIKey'; import { APIKeyInput } from '../models/APIKeyInput'; import { AccessToken } from '../models/AccessToken'; @@ -12,7 +13,9 @@ import { ActionDetails } from '../models/ActionDetails'; import { ActionDetailsInput } from '../models/ActionDetailsInput'; import { ActionDetailsInputCreate } from '../models/ActionDetailsInputCreate'; import { ActivateUserRequest } from '../models/ActivateUserRequest'; +import { AgentConversation } from '../models/AgentConversation'; import { AnswerContent } from '../models/AnswerContent'; +import { AnswerContextInput } from '../models/AnswerContextInput'; import { AnswerDataResponse } from '../models/AnswerDataResponse'; import { AssignChangeAuthorRequest } from '../models/AssignChangeAuthorRequest'; import { AssignTagRequest } from '../models/AssignTagRequest'; @@ -44,12 +47,19 @@ import { CommitFileType } from '../models/CommitFileType'; import { CommitHistoryResponse } from '../models/CommitHistoryResponse'; import { CommitResponse } from '../models/CommitResponse'; import { CommiterType } from '../models/CommiterType'; +import { CommunicationChannelPreferencesResponse } from '../models/CommunicationChannelPreferencesResponse'; +import { ConfigureCommunicationChannelPreferencesRequest } from '../models/ConfigureCommunicationChannelPreferencesRequest'; import { ConnectionConfigurationResponse } from '../models/ConnectionConfigurationResponse'; import { ConnectionConfigurationSearchRequest } from '../models/ConnectionConfigurationSearchRequest'; import { ConnectionInput } from '../models/ConnectionInput'; +import { ContextPayloadV2Input } from '../models/ContextPayloadV2Input'; import { Conversation } from '../models/Conversation'; +import { ConversationSettingsInput } from '../models/ConversationSettingsInput'; import { ConvertWorksheetToModelRequest } from '../models/ConvertWorksheetToModelRequest'; import { CopyObjectRequest } from '../models/CopyObjectRequest'; +import { CreateAgentConversationRequest } from '../models/CreateAgentConversationRequest'; +import { CreateAgentConversationRequestConversationSettings } from '../models/CreateAgentConversationRequestConversationSettings'; +import { CreateAgentConversationRequestMetadataContext } from '../models/CreateAgentConversationRequestMetadataContext'; import { CreateCalendarRequest } from '../models/CreateCalendarRequest'; import { CreateCalendarRequestTableReference } from '../models/CreateCalendarRequestTableReference'; import { CreateConfigRequest } from '../models/CreateConfigRequest'; @@ -74,9 +84,14 @@ import { CreateTagRequest } from '../models/CreateTagRequest'; import { CreateUserGroupRequest } from '../models/CreateUserGroupRequest'; import { CreateUserRequest } from '../models/CreateUserRequest'; import { CreateVariableRequest } from '../models/CreateVariableRequest'; +import { CreateWebhookConfigurationRequest } from '../models/CreateWebhookConfigurationRequest'; +import { CreateWebhookConfigurationRequestAuthentication } from '../models/CreateWebhookConfigurationRequestAuthentication'; +import { CreateWebhookConfigurationRequestSignatureVerification } from '../models/CreateWebhookConfigurationRequestSignatureVerification'; import { CronExpression } from '../models/CronExpression'; import { CronExpressionInput } from '../models/CronExpressionInput'; import { CustomActionMetadataTypeInput } from '../models/CustomActionMetadataTypeInput'; +import { DataSource } from '../models/DataSource'; +import { DataSourceContextInput } from '../models/DataSourceContextInput'; import { DataWarehouseObjectInput } from '../models/DataWarehouseObjectInput'; import { DataWarehouseObjects } from '../models/DataWarehouseObjects'; import { Database } from '../models/Database'; @@ -92,12 +107,21 @@ import { DeleteConnectionRequest } from '../models/DeleteConnectionRequest'; import { DeleteMetadataRequest } from '../models/DeleteMetadataRequest'; import { DeleteMetadataTypeInput } from '../models/DeleteMetadataTypeInput'; import { DeleteOrgEmailCustomizationRequest } from '../models/DeleteOrgEmailCustomizationRequest'; +import { DeleteWebhookConfigurationsRequest } from '../models/DeleteWebhookConfigurationsRequest'; import { DeployCommitRequest } from '../models/DeployCommitRequest'; import { DeployResponse } from '../models/DeployResponse'; +import { EntityHeader } from '../models/EntityHeader'; import { ErrorResponse } from '../models/ErrorResponse'; +import { EurekaDataSourceSuggestionResponse } from '../models/EurekaDataSourceSuggestionResponse'; import { EurekaDecomposeQueryResponse } from '../models/EurekaDecomposeQueryResponse'; +import { EurekaGetNLInstructionsResponse } from '../models/EurekaGetNLInstructionsResponse'; +import { EurekaGetRelevantQuestionsResponse } from '../models/EurekaGetRelevantQuestionsResponse'; import { EurekaLLMDecomposeQueryResponse } from '../models/EurekaLLMDecomposeQueryResponse'; import { EurekaLLMSuggestedQuery } from '../models/EurekaLLMSuggestedQuery'; +import { EurekaRelevantQuestion } from '../models/EurekaRelevantQuestion'; +import { EurekaSetNLInstructionsResponse } from '../models/EurekaSetNLInstructionsResponse'; +import { EventChannelConfig } from '../models/EventChannelConfig'; +import { EventChannelConfigInput } from '../models/EventChannelConfigInput'; import { ExcludeMetadataListItemInput } from '../models/ExcludeMetadataListItemInput'; import { ExportAnswerReportRequest } from '../models/ExportAnswerReportRequest'; import { ExportAnswerReportRequestRegionalSettings } from '../models/ExportAnswerReportRequestRegionalSettings'; @@ -131,9 +155,14 @@ import { GenerateCSVRequest } from '../models/GenerateCSVRequest'; import { GenericInfo } from '../models/GenericInfo'; import { GetAsyncImportStatusResponse } from '../models/GetAsyncImportStatusResponse'; import { GetCustomAccessTokenRequest } from '../models/GetCustomAccessTokenRequest'; +import { GetDataSourceSuggestionsRequest } from '../models/GetDataSourceSuggestionsRequest'; import { GetFullAccessTokenRequest } from '../models/GetFullAccessTokenRequest'; import { GetFullAccessTokenRequestUserParameters } from '../models/GetFullAccessTokenRequestUserParameters'; +import { GetNLInstructionsRequest } from '../models/GetNLInstructionsRequest'; import { GetObjectAccessTokenRequest } from '../models/GetObjectAccessTokenRequest'; +import { GetRelevantQuestionsRequest } from '../models/GetRelevantQuestionsRequest'; +import { GetRelevantQuestionsRequestAiContext } from '../models/GetRelevantQuestionsRequestAiContext'; +import { GetRelevantQuestionsRequestMetadataContext } from '../models/GetRelevantQuestionsRequestMetadataContext'; import { GetTokenResponse } from '../models/GetTokenResponse'; import { GroupObject } from '../models/GroupObject'; import { GroupsImportListInput } from '../models/GroupsImportListInput'; @@ -149,11 +178,11 @@ import { ImportUserType } from '../models/ImportUserType'; import { ImportUsersRequest } from '../models/ImportUsersRequest'; import { ImportUsersResponse } from '../models/ImportUsersResponse'; import { InputEurekaNLSRequest } from '../models/InputEurekaNLSRequest'; -import { InputVariableValue } from '../models/InputVariableValue'; import { JWTMetadataObject } from '../models/JWTMetadataObject'; import { JWTParameter } from '../models/JWTParameter'; import { JWTUserOptions } from '../models/JWTUserOptions'; import { JWTUserOptionsFull } from '../models/JWTUserOptionsFull'; +import { LBContextInput } from '../models/LBContextInput'; import { LiveboardContent } from '../models/LiveboardContent'; import { LiveboardDataResponse } from '../models/LiveboardDataResponse'; import { LiveboardOptions } from '../models/LiveboardOptions'; @@ -161,6 +190,7 @@ import { LiveboardOptionsInput } from '../models/LiveboardOptionsInput'; import { LogResponse } from '../models/LogResponse'; import { LoginRequest } from '../models/LoginRequest'; import { MetadataAssociationItem } from '../models/MetadataAssociationItem'; +import { MetadataContext } from '../models/MetadataContext'; import { MetadataInput } from '../models/MetadataInput'; import { MetadataListItemInput } from '../models/MetadataListItemInput'; import { MetadataObject } from '../models/MetadataObject'; @@ -168,9 +198,15 @@ import { MetadataResponse } from '../models/MetadataResponse'; import { MetadataSearchResponse } from '../models/MetadataSearchResponse'; import { MetadataSearchSortOptions } from '../models/MetadataSearchSortOptions'; import { ModelTableList } from '../models/ModelTableList'; +import { NLInstructionsInfo } from '../models/NLInstructionsInfo'; +import { NLInstructionsInfoInput } from '../models/NLInstructionsInfoInput'; import { ObjectIDAndName } from '../models/ObjectIDAndName'; import { Org } from '../models/Org'; +import { OrgChannelConfigInput } from '../models/OrgChannelConfigInput'; +import { OrgChannelConfigResponse } from '../models/OrgChannelConfigResponse'; +import { OrgDetails } from '../models/OrgDetails'; import { OrgInfo } from '../models/OrgInfo'; +import { OrgPreferenceSearchCriteriaInput } from '../models/OrgPreferenceSearchCriteriaInput'; import { OrgResponse } from '../models/OrgResponse'; import { OrgType } from '../models/OrgType'; import { ParameterValues } from '../models/ParameterValues'; @@ -232,6 +268,7 @@ import { Scope } from '../models/Scope'; import { SearchCalendarsRequest } from '../models/SearchCalendarsRequest'; import { SearchCalendarsRequestSortOptions } from '../models/SearchCalendarsRequestSortOptions'; import { SearchCommitsRequest } from '../models/SearchCommitsRequest'; +import { SearchCommunicationChannelPreferencesRequest } from '../models/SearchCommunicationChannelPreferencesRequest'; import { SearchConfigRequest } from '../models/SearchConfigRequest'; import { SearchConnectionRequest } from '../models/SearchConnectionRequest'; import { SearchConnectionRequestSortOptions } from '../models/SearchConnectionRequestSortOptions'; @@ -256,7 +293,13 @@ import { SearchUserGroupsRequestSortOptions } from '../models/SearchUserGroupsRe import { SearchUsersRequest } from '../models/SearchUsersRequest'; import { SearchUsersRequestSortOptions } from '../models/SearchUsersRequestSortOptions'; import { SearchVariablesRequest } from '../models/SearchVariablesRequest'; +import { SearchWebhookConfigurationsRequest } from '../models/SearchWebhookConfigurationsRequest'; +import { SearchWebhookConfigurationsRequestSortOptions } from '../models/SearchWebhookConfigurationsRequestSortOptions'; +import { SendAgentMessageRequest } from '../models/SendAgentMessageRequest'; +import { SendAgentMessageResponse } from '../models/SendAgentMessageResponse'; +import { SendAgentMessageStreamingRequest } from '../models/SendAgentMessageStreamingRequest'; import { SendMessageRequest } from '../models/SendMessageRequest'; +import { SetNLInstructionsRequest } from '../models/SetNLInstructionsRequest'; import { ShareMetadataRequest } from '../models/ShareMetadataRequest'; import { ShareMetadataTypeInput } from '../models/ShareMetadataTypeInput'; import { SharePermissionsInput } from '../models/SharePermissionsInput'; @@ -309,6 +352,7 @@ import { UpdateUserGroupRequest } from '../models/UpdateUserGroupRequest'; import { UpdateUserRequest } from '../models/UpdateUserRequest'; import { UpdateVariableRequest } from '../models/UpdateVariableRequest'; import { UpdateVariableValuesRequest } from '../models/UpdateVariableValuesRequest'; +import { UpdateWebhookConfigurationRequest } from '../models/UpdateWebhookConfigurationRequest'; import { User } from '../models/User'; import { UserGroup } from '../models/UserGroup'; import { UserGroupResponse } from '../models/UserGroupResponse'; @@ -318,10 +362,31 @@ import { UserParameterOptions } from '../models/UserParameterOptions'; import { UserPrincipal } from '../models/UserPrincipal'; import { ValidateMergeRequest } from '../models/ValidateMergeRequest'; import { ValidateTokenRequest } from '../models/ValidateTokenRequest'; +import { ValueScopeInput } from '../models/ValueScopeInput'; import { Variable } from '../models/Variable'; import { VariableDetailInput } from '../models/VariableDetailInput'; +import { VariableUpdateAssignmentInput } from '../models/VariableUpdateAssignmentInput'; +import { VariableUpdateScopeInput } from '../models/VariableUpdateScopeInput'; import { VariableValue } from '../models/VariableValue'; -import { VariableValueInput } from '../models/VariableValueInput'; +import { VariableValues } from '../models/VariableValues'; +import { WebhookAuthApiKey } from '../models/WebhookAuthApiKey'; +import { WebhookAuthApiKeyInput } from '../models/WebhookAuthApiKeyInput'; +import { WebhookAuthBasicAuth } from '../models/WebhookAuthBasicAuth'; +import { WebhookAuthBasicAuthInput } from '../models/WebhookAuthBasicAuthInput'; +import { WebhookAuthOAuth2 } from '../models/WebhookAuthOAuth2'; +import { WebhookAuthOAuth2Input } from '../models/WebhookAuthOAuth2Input'; +import { WebhookAuthentication } from '../models/WebhookAuthentication'; +import { WebhookAuthenticationInput } from '../models/WebhookAuthenticationInput'; +import { WebhookDeleteFailure } from '../models/WebhookDeleteFailure'; +import { WebhookDeleteResponse } from '../models/WebhookDeleteResponse'; +import { WebhookOrg } from '../models/WebhookOrg'; +import { WebhookPagination } from '../models/WebhookPagination'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { WebhookSearchResponse } from '../models/WebhookSearchResponse'; +import { WebhookSignatureVerification } from '../models/WebhookSignatureVerification'; +import { WebhookSignatureVerificationInput } from '../models/WebhookSignatureVerificationInput'; +import { WebhookSortOptionsInput } from '../models/WebhookSortOptionsInput'; +import { WebhookUser } from '../models/WebhookUser'; import { AIApiRequestFactory, AIApiResponseProcessor} from "../apis/AIApi"; export class ObservableAIApi { @@ -339,6 +404,29 @@ export class ObservableAIApi { this.responseProcessor = responseProcessor || new AIApiResponseProcessor(); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + public createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.createAgentConversation(createAgentConversationRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createAgentConversation(rsp))); + })); + } + /** * 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 @@ -362,6 +450,75 @@ export class ObservableAIApi { })); } + /** + * 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 + */ + public getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getDataSourceSuggestions(rsp))); + })); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + public getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.getNLInstructions(getNLInstructionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getNLInstructions(rsp))); + })); + } + + /** + * 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 + */ + public getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.getRelevantQuestions(getRelevantQuestionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getRelevantQuestions(rsp))); + })); + } + /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -385,6 +542,53 @@ export class ObservableAIApi { })); } + /** + * 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) + * @param sendAgentMessageRequest + */ + public sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.sendAgentMessage(rsp))); + })); + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + public sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.sendAgentMessageStreaming(rsp))); + })); + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -409,6 +613,29 @@ export class ObservableAIApi { })); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + public setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.setNLInstructions(setNLInstructionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.setNLInstructions(rsp))); + })); + } + /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -495,7 +722,7 @@ export class ObservableAuthenticationApi { } /** - * 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. * @param getCustomAccessTokenRequest */ public getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Observable { @@ -696,7 +923,7 @@ export class ObservableConnectionConfigurationsApi { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ public createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Observable { @@ -742,7 +969,7 @@ export class ObservableConnectionConfigurationsApi { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -945,7 +1172,7 @@ export class ObservableConnectionsApi { } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -1290,13 +1517,13 @@ export class ObservableDBTApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - public dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Observable { - const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + public dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); // build promise chain let middlewarePreObservable = from(requestContextPromise); @@ -1498,7 +1725,7 @@ export class ObservableEmailCustomizationApi { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ public createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Observable { @@ -1590,7 +1817,7 @@ export class ObservableEmailCustomizationApi { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ public updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Observable { @@ -1851,7 +2078,7 @@ export class ObservableMetadataApi { } /** - * 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. * @param copyObjectRequest */ public copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Observable { @@ -2058,7 +2285,7 @@ export class ObservableMetadataApi { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ public parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Observable { @@ -2104,7 +2331,7 @@ export class ObservableMetadataApi { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ public unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Observable { @@ -2325,7 +2552,7 @@ export class ObservableReportsApi { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ public exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Observable { @@ -2789,6 +3016,29 @@ export class ObservableSystemApi { this.responseProcessor = responseProcessor || new SystemApiResponseProcessor(); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + public configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.configureCommunicationChannelPreferences(rsp))); + })); + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -2855,6 +3105,29 @@ export class ObservableSystemApi { })); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + public searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.searchCommunicationChannelPreferences(rsp))); + })); + } + /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -3168,6 +3441,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + public configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.configureCommunicationChannelPreferences(rsp))); + })); + } + /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -3215,7 +3511,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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. * @param copyObjectRequest */ public copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Observable { @@ -3237,6 +3533,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + public createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.createAgentConversation(createAgentConversationRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createAgentConversation(rsp))); + })); + } + /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -3307,7 +3626,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ public createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Observable { @@ -3376,7 +3695,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ public createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Observable { @@ -3537,7 +3856,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ public createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Observable { @@ -3559,6 +3878,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + public createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createWebhookConfiguration(rsp))); + })); + } + /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -3618,13 +3960,13 @@ export class ObservableThoughtSpotRestApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - public dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Observable { - const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + public dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); // build promise chain let middlewarePreObservable = from(requestContextPromise); @@ -4056,7 +4398,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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 * @param identifier Unique id or name of the variable */ public deleteVariable(identifier: string, _options?: Configuration): Observable { @@ -4078,6 +4420,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + public deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deleteWebhookConfigurations(rsp))); + })); + } + /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -4148,7 +4513,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ public exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Observable { @@ -4537,7 +4902,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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. * @param getCustomAccessTokenRequest */ public getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Observable { @@ -4559,6 +4924,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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 + */ + public getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getDataSourceSuggestions(rsp))); + })); + } + /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest @@ -4582,6 +4970,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + public getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.getNLInstructions(getNLInstructionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getNLInstructions(rsp))); + })); + } + /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest @@ -4605,6 +5016,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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 + */ + public getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.getRelevantQuestions(getRelevantQuestionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getRelevantQuestions(rsp))); + })); + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -4809,7 +5243,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ public parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Observable { @@ -4993,6 +5427,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + public searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.searchCommunicationChannelPreferences(rsp))); + })); + } + /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -5270,7 +5727,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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 * @param searchVariablesRequest */ public searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Observable> { @@ -5292,6 +5749,76 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + public searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.searchWebhookConfigurations(rsp))); + })); + } + + /** + * 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) + * @param sendAgentMessageRequest + */ + public sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.sendAgentMessage(rsp))); + })); + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + public sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.sendAgentMessageStreaming(rsp))); + })); + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -5316,6 +5843,29 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + public setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.setNLInstructions(setNLInstructionsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.setNLInstructions(rsp))); + })); + } + /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -5386,7 +5936,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ public unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Observable { @@ -5525,7 +6075,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -5549,7 +6099,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -5630,7 +6180,7 @@ export class ObservableThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ public updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Observable { @@ -5866,7 +6416,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -5890,7 +6440,7 @@ export class ObservableThoughtSpotRestApi { } /** - * 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 * @param updateVariableValuesRequest */ public updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Observable { @@ -5912,6 +6462,30 @@ export class ObservableThoughtSpotRestApi { })); } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + public updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updateWebhookConfiguration(rsp))); + })); + } + /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -6248,7 +6822,7 @@ export class ObservableVariableApi { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ public createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Observable { @@ -6271,7 +6845,7 @@ export class ObservableVariableApi { } /** - * 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 * @param identifier Unique id or name of the variable */ public deleteVariable(identifier: string, _options?: Configuration): Observable { @@ -6294,7 +6868,7 @@ export class ObservableVariableApi { } /** - * 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 * @param searchVariablesRequest */ public searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Observable> { @@ -6317,7 +6891,7 @@ export class ObservableVariableApi { } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -6341,7 +6915,7 @@ export class ObservableVariableApi { } /** - * 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 * @param updateVariableValuesRequest */ public updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Observable { @@ -6590,3 +7164,114 @@ export class ObservableVersionControlApi { } } + +import { WebhooksApiRequestFactory, WebhooksApiResponseProcessor} from "../apis/WebhooksApi"; +export class ObservableWebhooksApi { + private requestFactory: WebhooksApiRequestFactory; + private responseProcessor: WebhooksApiResponseProcessor; + private configuration: Configuration; + + public constructor( + configuration: Configuration, + requestFactory?: WebhooksApiRequestFactory, + responseProcessor?: WebhooksApiResponseProcessor + ) { + this.configuration = configuration; + this.requestFactory = requestFactory || new WebhooksApiRequestFactory(configuration); + this.responseProcessor = responseProcessor || new WebhooksApiResponseProcessor(); + } + + /** + * 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. + * @param createWebhookConfigurationRequest + */ + public createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createWebhookConfiguration(rsp))); + })); + } + + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + public deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deleteWebhookConfigurations(rsp))); + })); + } + + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + public searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.searchWebhookConfigurations(rsp))); + })); + } + + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + public updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Observable { + const requestContextPromise = this.requestFactory.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + + // build promise chain + let middlewarePreObservable = from(requestContextPromise); + for (let middleware of this.configuration.middleware) { + middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); + } + + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + pipe(mergeMap((response: ResponseContext) => { + let middlewarePostObservable = of(response); + for (let middleware of this.configuration.middleware) { + middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp))); + } + return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updateWebhookConfiguration(rsp))); + })); + } + +} diff --git a/sdks/typescript/types/PromiseAPI.ts b/sdks/typescript/types/PromiseAPI.ts index 7cc61c6ee..59b8adb84 100644 --- a/sdks/typescript/types/PromiseAPI.ts +++ b/sdks/typescript/types/PromiseAPI.ts @@ -1,6 +1,7 @@ import { ResponseContext, RequestContext, HttpFile } from '../http/http'; import { Configuration} from '../configuration' +import { AIContext } from '../models/AIContext'; import { APIKey } from '../models/APIKey'; import { APIKeyInput } from '../models/APIKeyInput'; import { AccessToken } from '../models/AccessToken'; @@ -11,7 +12,9 @@ import { ActionDetails } from '../models/ActionDetails'; import { ActionDetailsInput } from '../models/ActionDetailsInput'; import { ActionDetailsInputCreate } from '../models/ActionDetailsInputCreate'; import { ActivateUserRequest } from '../models/ActivateUserRequest'; +import { AgentConversation } from '../models/AgentConversation'; import { AnswerContent } from '../models/AnswerContent'; +import { AnswerContextInput } from '../models/AnswerContextInput'; import { AnswerDataResponse } from '../models/AnswerDataResponse'; import { AssignChangeAuthorRequest } from '../models/AssignChangeAuthorRequest'; import { AssignTagRequest } from '../models/AssignTagRequest'; @@ -43,12 +46,19 @@ import { CommitFileType } from '../models/CommitFileType'; import { CommitHistoryResponse } from '../models/CommitHistoryResponse'; import { CommitResponse } from '../models/CommitResponse'; import { CommiterType } from '../models/CommiterType'; +import { CommunicationChannelPreferencesResponse } from '../models/CommunicationChannelPreferencesResponse'; +import { ConfigureCommunicationChannelPreferencesRequest } from '../models/ConfigureCommunicationChannelPreferencesRequest'; import { ConnectionConfigurationResponse } from '../models/ConnectionConfigurationResponse'; import { ConnectionConfigurationSearchRequest } from '../models/ConnectionConfigurationSearchRequest'; import { ConnectionInput } from '../models/ConnectionInput'; +import { ContextPayloadV2Input } from '../models/ContextPayloadV2Input'; import { Conversation } from '../models/Conversation'; +import { ConversationSettingsInput } from '../models/ConversationSettingsInput'; import { ConvertWorksheetToModelRequest } from '../models/ConvertWorksheetToModelRequest'; import { CopyObjectRequest } from '../models/CopyObjectRequest'; +import { CreateAgentConversationRequest } from '../models/CreateAgentConversationRequest'; +import { CreateAgentConversationRequestConversationSettings } from '../models/CreateAgentConversationRequestConversationSettings'; +import { CreateAgentConversationRequestMetadataContext } from '../models/CreateAgentConversationRequestMetadataContext'; import { CreateCalendarRequest } from '../models/CreateCalendarRequest'; import { CreateCalendarRequestTableReference } from '../models/CreateCalendarRequestTableReference'; import { CreateConfigRequest } from '../models/CreateConfigRequest'; @@ -73,9 +83,14 @@ import { CreateTagRequest } from '../models/CreateTagRequest'; import { CreateUserGroupRequest } from '../models/CreateUserGroupRequest'; import { CreateUserRequest } from '../models/CreateUserRequest'; import { CreateVariableRequest } from '../models/CreateVariableRequest'; +import { CreateWebhookConfigurationRequest } from '../models/CreateWebhookConfigurationRequest'; +import { CreateWebhookConfigurationRequestAuthentication } from '../models/CreateWebhookConfigurationRequestAuthentication'; +import { CreateWebhookConfigurationRequestSignatureVerification } from '../models/CreateWebhookConfigurationRequestSignatureVerification'; import { CronExpression } from '../models/CronExpression'; import { CronExpressionInput } from '../models/CronExpressionInput'; import { CustomActionMetadataTypeInput } from '../models/CustomActionMetadataTypeInput'; +import { DataSource } from '../models/DataSource'; +import { DataSourceContextInput } from '../models/DataSourceContextInput'; import { DataWarehouseObjectInput } from '../models/DataWarehouseObjectInput'; import { DataWarehouseObjects } from '../models/DataWarehouseObjects'; import { Database } from '../models/Database'; @@ -91,12 +106,21 @@ import { DeleteConnectionRequest } from '../models/DeleteConnectionRequest'; import { DeleteMetadataRequest } from '../models/DeleteMetadataRequest'; import { DeleteMetadataTypeInput } from '../models/DeleteMetadataTypeInput'; import { DeleteOrgEmailCustomizationRequest } from '../models/DeleteOrgEmailCustomizationRequest'; +import { DeleteWebhookConfigurationsRequest } from '../models/DeleteWebhookConfigurationsRequest'; import { DeployCommitRequest } from '../models/DeployCommitRequest'; import { DeployResponse } from '../models/DeployResponse'; +import { EntityHeader } from '../models/EntityHeader'; import { ErrorResponse } from '../models/ErrorResponse'; +import { EurekaDataSourceSuggestionResponse } from '../models/EurekaDataSourceSuggestionResponse'; import { EurekaDecomposeQueryResponse } from '../models/EurekaDecomposeQueryResponse'; +import { EurekaGetNLInstructionsResponse } from '../models/EurekaGetNLInstructionsResponse'; +import { EurekaGetRelevantQuestionsResponse } from '../models/EurekaGetRelevantQuestionsResponse'; import { EurekaLLMDecomposeQueryResponse } from '../models/EurekaLLMDecomposeQueryResponse'; import { EurekaLLMSuggestedQuery } from '../models/EurekaLLMSuggestedQuery'; +import { EurekaRelevantQuestion } from '../models/EurekaRelevantQuestion'; +import { EurekaSetNLInstructionsResponse } from '../models/EurekaSetNLInstructionsResponse'; +import { EventChannelConfig } from '../models/EventChannelConfig'; +import { EventChannelConfigInput } from '../models/EventChannelConfigInput'; import { ExcludeMetadataListItemInput } from '../models/ExcludeMetadataListItemInput'; import { ExportAnswerReportRequest } from '../models/ExportAnswerReportRequest'; import { ExportAnswerReportRequestRegionalSettings } from '../models/ExportAnswerReportRequestRegionalSettings'; @@ -130,9 +154,14 @@ import { GenerateCSVRequest } from '../models/GenerateCSVRequest'; import { GenericInfo } from '../models/GenericInfo'; import { GetAsyncImportStatusResponse } from '../models/GetAsyncImportStatusResponse'; import { GetCustomAccessTokenRequest } from '../models/GetCustomAccessTokenRequest'; +import { GetDataSourceSuggestionsRequest } from '../models/GetDataSourceSuggestionsRequest'; import { GetFullAccessTokenRequest } from '../models/GetFullAccessTokenRequest'; import { GetFullAccessTokenRequestUserParameters } from '../models/GetFullAccessTokenRequestUserParameters'; +import { GetNLInstructionsRequest } from '../models/GetNLInstructionsRequest'; import { GetObjectAccessTokenRequest } from '../models/GetObjectAccessTokenRequest'; +import { GetRelevantQuestionsRequest } from '../models/GetRelevantQuestionsRequest'; +import { GetRelevantQuestionsRequestAiContext } from '../models/GetRelevantQuestionsRequestAiContext'; +import { GetRelevantQuestionsRequestMetadataContext } from '../models/GetRelevantQuestionsRequestMetadataContext'; import { GetTokenResponse } from '../models/GetTokenResponse'; import { GroupObject } from '../models/GroupObject'; import { GroupsImportListInput } from '../models/GroupsImportListInput'; @@ -148,11 +177,11 @@ import { ImportUserType } from '../models/ImportUserType'; import { ImportUsersRequest } from '../models/ImportUsersRequest'; import { ImportUsersResponse } from '../models/ImportUsersResponse'; import { InputEurekaNLSRequest } from '../models/InputEurekaNLSRequest'; -import { InputVariableValue } from '../models/InputVariableValue'; import { JWTMetadataObject } from '../models/JWTMetadataObject'; import { JWTParameter } from '../models/JWTParameter'; import { JWTUserOptions } from '../models/JWTUserOptions'; import { JWTUserOptionsFull } from '../models/JWTUserOptionsFull'; +import { LBContextInput } from '../models/LBContextInput'; import { LiveboardContent } from '../models/LiveboardContent'; import { LiveboardDataResponse } from '../models/LiveboardDataResponse'; import { LiveboardOptions } from '../models/LiveboardOptions'; @@ -160,6 +189,7 @@ import { LiveboardOptionsInput } from '../models/LiveboardOptionsInput'; import { LogResponse } from '../models/LogResponse'; import { LoginRequest } from '../models/LoginRequest'; import { MetadataAssociationItem } from '../models/MetadataAssociationItem'; +import { MetadataContext } from '../models/MetadataContext'; import { MetadataInput } from '../models/MetadataInput'; import { MetadataListItemInput } from '../models/MetadataListItemInput'; import { MetadataObject } from '../models/MetadataObject'; @@ -167,9 +197,15 @@ import { MetadataResponse } from '../models/MetadataResponse'; import { MetadataSearchResponse } from '../models/MetadataSearchResponse'; import { MetadataSearchSortOptions } from '../models/MetadataSearchSortOptions'; import { ModelTableList } from '../models/ModelTableList'; +import { NLInstructionsInfo } from '../models/NLInstructionsInfo'; +import { NLInstructionsInfoInput } from '../models/NLInstructionsInfoInput'; import { ObjectIDAndName } from '../models/ObjectIDAndName'; import { Org } from '../models/Org'; +import { OrgChannelConfigInput } from '../models/OrgChannelConfigInput'; +import { OrgChannelConfigResponse } from '../models/OrgChannelConfigResponse'; +import { OrgDetails } from '../models/OrgDetails'; import { OrgInfo } from '../models/OrgInfo'; +import { OrgPreferenceSearchCriteriaInput } from '../models/OrgPreferenceSearchCriteriaInput'; import { OrgResponse } from '../models/OrgResponse'; import { OrgType } from '../models/OrgType'; import { ParameterValues } from '../models/ParameterValues'; @@ -231,6 +267,7 @@ import { Scope } from '../models/Scope'; import { SearchCalendarsRequest } from '../models/SearchCalendarsRequest'; import { SearchCalendarsRequestSortOptions } from '../models/SearchCalendarsRequestSortOptions'; import { SearchCommitsRequest } from '../models/SearchCommitsRequest'; +import { SearchCommunicationChannelPreferencesRequest } from '../models/SearchCommunicationChannelPreferencesRequest'; import { SearchConfigRequest } from '../models/SearchConfigRequest'; import { SearchConnectionRequest } from '../models/SearchConnectionRequest'; import { SearchConnectionRequestSortOptions } from '../models/SearchConnectionRequestSortOptions'; @@ -255,7 +292,13 @@ import { SearchUserGroupsRequestSortOptions } from '../models/SearchUserGroupsRe import { SearchUsersRequest } from '../models/SearchUsersRequest'; import { SearchUsersRequestSortOptions } from '../models/SearchUsersRequestSortOptions'; import { SearchVariablesRequest } from '../models/SearchVariablesRequest'; +import { SearchWebhookConfigurationsRequest } from '../models/SearchWebhookConfigurationsRequest'; +import { SearchWebhookConfigurationsRequestSortOptions } from '../models/SearchWebhookConfigurationsRequestSortOptions'; +import { SendAgentMessageRequest } from '../models/SendAgentMessageRequest'; +import { SendAgentMessageResponse } from '../models/SendAgentMessageResponse'; +import { SendAgentMessageStreamingRequest } from '../models/SendAgentMessageStreamingRequest'; import { SendMessageRequest } from '../models/SendMessageRequest'; +import { SetNLInstructionsRequest } from '../models/SetNLInstructionsRequest'; import { ShareMetadataRequest } from '../models/ShareMetadataRequest'; import { ShareMetadataTypeInput } from '../models/ShareMetadataTypeInput'; import { SharePermissionsInput } from '../models/SharePermissionsInput'; @@ -308,6 +351,7 @@ import { UpdateUserGroupRequest } from '../models/UpdateUserGroupRequest'; import { UpdateUserRequest } from '../models/UpdateUserRequest'; import { UpdateVariableRequest } from '../models/UpdateVariableRequest'; import { UpdateVariableValuesRequest } from '../models/UpdateVariableValuesRequest'; +import { UpdateWebhookConfigurationRequest } from '../models/UpdateWebhookConfigurationRequest'; import { User } from '../models/User'; import { UserGroup } from '../models/UserGroup'; import { UserGroupResponse } from '../models/UserGroupResponse'; @@ -317,10 +361,31 @@ import { UserParameterOptions } from '../models/UserParameterOptions'; import { UserPrincipal } from '../models/UserPrincipal'; import { ValidateMergeRequest } from '../models/ValidateMergeRequest'; import { ValidateTokenRequest } from '../models/ValidateTokenRequest'; +import { ValueScopeInput } from '../models/ValueScopeInput'; import { Variable } from '../models/Variable'; import { VariableDetailInput } from '../models/VariableDetailInput'; +import { VariableUpdateAssignmentInput } from '../models/VariableUpdateAssignmentInput'; +import { VariableUpdateScopeInput } from '../models/VariableUpdateScopeInput'; import { VariableValue } from '../models/VariableValue'; -import { VariableValueInput } from '../models/VariableValueInput'; +import { VariableValues } from '../models/VariableValues'; +import { WebhookAuthApiKey } from '../models/WebhookAuthApiKey'; +import { WebhookAuthApiKeyInput } from '../models/WebhookAuthApiKeyInput'; +import { WebhookAuthBasicAuth } from '../models/WebhookAuthBasicAuth'; +import { WebhookAuthBasicAuthInput } from '../models/WebhookAuthBasicAuthInput'; +import { WebhookAuthOAuth2 } from '../models/WebhookAuthOAuth2'; +import { WebhookAuthOAuth2Input } from '../models/WebhookAuthOAuth2Input'; +import { WebhookAuthentication } from '../models/WebhookAuthentication'; +import { WebhookAuthenticationInput } from '../models/WebhookAuthenticationInput'; +import { WebhookDeleteFailure } from '../models/WebhookDeleteFailure'; +import { WebhookDeleteResponse } from '../models/WebhookDeleteResponse'; +import { WebhookOrg } from '../models/WebhookOrg'; +import { WebhookPagination } from '../models/WebhookPagination'; +import { WebhookResponse } from '../models/WebhookResponse'; +import { WebhookSearchResponse } from '../models/WebhookSearchResponse'; +import { WebhookSignatureVerification } from '../models/WebhookSignatureVerification'; +import { WebhookSignatureVerificationInput } from '../models/WebhookSignatureVerificationInput'; +import { WebhookSortOptionsInput } from '../models/WebhookSortOptionsInput'; +import { WebhookUser } from '../models/WebhookUser'; import { ObservableAIApi } from './ObservableAPI'; import { AIApiRequestFactory, AIApiResponseProcessor} from "../apis/AIApi"; @@ -335,6 +400,15 @@ export class PromiseAIApi { this.api = new ObservableAIApi(configuration, requestFactory, responseProcessor); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + public createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise { + const result = this.api.createAgentConversation(createAgentConversationRequest, _options); + return result.toPromise(); + } + /** * 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 @@ -344,6 +418,33 @@ export class PromiseAIApi { return result.toPromise(); } + /** + * 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 + */ + public getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise { + const result = this.api.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + return result.toPromise(); + } + + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + public getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise { + const result = this.api.getNLInstructions(getNLInstructionsRequest, _options); + return result.toPromise(); + } + + /** + * 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 + */ + public getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise { + const result = this.api.getRelevantQuestions(getRelevantQuestionsRequest, _options); + return result.toPromise(); + } + /** * Version: 10.7.0.cl or later * @param queryGetDecomposedQueryRequest @@ -353,6 +454,25 @@ export class PromiseAIApi { return result.toPromise(); } + /** + * 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) + * @param sendAgentMessageRequest + */ + public sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise { + const result = this.api.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + return result.toPromise(); + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + public sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise { + const result = this.api.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + return result.toPromise(); + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -363,6 +483,15 @@ export class PromiseAIApi { return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + public setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise { + const result = this.api.setNLInstructions(setNLInstructionsRequest, _options); + return result.toPromise(); + } + /** * Version: 10.4.0.cl or later Processes a natural language query and returns an AI-generated response based on a specified data model. Requires at least view access to the metadata object specified in the request. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param singleAnswerRequest @@ -408,7 +537,7 @@ export class PromiseAuthenticationApi { } /** - * 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. * @param getCustomAccessTokenRequest */ public getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise { @@ -498,7 +627,7 @@ export class PromiseConnectionConfigurationsApi { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ public createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise { @@ -516,7 +645,7 @@ export class PromiseConnectionConfigurationsApi { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -608,7 +737,7 @@ export class PromiseConnectionsApi { } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -788,13 +917,13 @@ export class PromiseDBTApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - public dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { - const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + public dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { + const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); return result.toPromise(); } @@ -900,7 +1029,7 @@ export class PromiseEmailCustomizationApi { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ public createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -936,7 +1065,7 @@ export class PromiseEmailCustomizationApi { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ public updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -1074,7 +1203,7 @@ export class PromiseMetadataApi { } /** - * 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. * @param copyObjectRequest */ public copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise { @@ -1155,7 +1284,7 @@ export class PromiseMetadataApi { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ public parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise { @@ -1173,7 +1302,7 @@ export class PromiseMetadataApi { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ public unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise { @@ -1284,7 +1413,7 @@ export class PromiseReportsApi { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ public exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise { @@ -1514,6 +1643,15 @@ export class PromiseSystemApi { this.api = new ObservableSystemApi(configuration, requestFactory, responseProcessor); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + public configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + const result = this.api.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -1538,6 +1676,15 @@ export class PromiseSystemApi { return result.toPromise(); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + public searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + const result = this.api.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } + /** * Version: 9.2.0.cl or later Updates the current configuration of the cluster. You must send the configuration data in JSON format. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privileges. If [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. * @param updateSystemConfigRequest @@ -1685,6 +1832,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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. + * @param configureCommunicationChannelPreferencesRequest + */ + public configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest: ConfigureCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + const result = this.api.configureCommunicationChannelPreferences(configureCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } + /** * Version: 10.12.0.cl or later Gets connection configuration objects. Requires `DATAMANAGEMENT` (**Can manage data**) and edit permissions to the connection object, or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * To get a list of all configurations available in the ThoughtSpot system, send the API request with only the connection name or GUID in the request body. * To fetch details of a configuration object, specify the configuration object name or GUID. * @param connectionConfigurationSearchRequest @@ -1704,7 +1860,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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. * @param copyObjectRequest */ public copyObject(copyObjectRequest: CopyObjectRequest, _options?: Configuration): Promise { @@ -1712,6 +1868,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * Version: 10.13.0.cl or later + * @param createAgentConversationRequest + */ + public createAgentConversation(createAgentConversationRequest: CreateAgentConversationRequest, _options?: Configuration): Promise { + const result = this.api.createAgentConversation(createAgentConversationRequest, _options); + return result.toPromise(); + } + /** * Version: 10.12.0.cl or later Creates a new [custom calendar](https://docs.thoughtspot.com/cloud/latest/connections-cust-cal). Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot instance, the `CAN_MANAGE_CUSTOM_CALENDAR` (**Can manage custom calendars**) privilege is required. #### Usage guidelines You can create a custom calendar from scratch or an existing Table in ThoughtSpot. For both methods of calendar creation, the following parameters are required: * Name of the custom calendar. * Calendar creation method. To create a calendar from an existing table, specify the method: - `FROM_EXISTING_TABLE` - Creates calendar from the table reference provided in the API request. - `FROM_INPUT_PARAMS` - Creates a calendar from the parameters defined in the API request. * Connection ID and Table name * Database and schema name attributes: For most Cloud Data Warehouse (CDW) connectors, both `database_name` and `schema_name` attributes are required. However, the attribute requirements are conditional and vary based on the connector type and its metadata structure. For example, for connectors such as Teradata, MySQL, SingleSore, Amazon Aurora MySQL, Amazon RDS MySQL, Oracle, and GCP_MYSQL, the `schema_name` is required, whereas the `database_name` attribute is not. Similarly, connectors such as ClickHouse require you to specify the `database_name` and the schema specification in such cases is optional. **NOTE**: If you are creating a calendar from an existing table, ensure that the referenced table matches the required DDL for custom calendars. If the schema does not match, the API returns an error. ##### Calendar type The API allows you to create the following types of calendars: * `MONTH_OFFSET`. The default calendar type. A `MONTH_OFFSET` calendar is offset by a few months from the standard calendar months (January to December) and the year begins with the month defined in the request. For example, if the `month_offset` value is set as `April`, the calendar year begins in April. * `4-4-5`. Each quarter in the calendar will include two 4-week months followed by one 5-week month. * `4-5-4`. Each quarter in the calendar will include two 4-week months with a 5-week month between. * `5-4-4`. Each quarter begins with a 5-week month, followed by two 4-week months. To start and end the calendar on a specific date, specify the dates in the `MM/DD/YYYY` format. For `MONTH_OFFSET` calendars, ensure that the `start_date` matches the month specified in the `month_offset` attribute. You can also set the starting day of the week and customize the prefixes for year and quarter labels. #### Examples To create a calendar from an existing table: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_EXISTING_TABLE\", } ``` To create a calendar from scratch: ``` { \"name\": \"MyCustomCalendar1\", \"table_reference\": { \"connection_identifier\": \"4db8ea22-2ff4-4224-b05a-26674717e468\", \"table_name\": \"MyCalendarTable\", \"database_name\": \"RETAILAPPAREL\", \"schema_name\": \"PUBLIC\" }, \"creation_method\": \"FROM_INPUT_PARAMS\", \"calendar_type\": \"MONTH_OFFSET\", \"month_offset\": \"April\", \"start_day_of_week\": \"Monday\", \"quarter_name_prefix\": \"Q\", \"year_name_prefix\": \"FY\", \"start_date\": \"04/01/2025\", \"end_date\": \"04/31/2025\" } ``` * @param createCalendarRequest @@ -1740,7 +1905,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. + * Version: 10.12.0.cl or later Creates an additional configuration to an existing connection to a data warehouse. Requires `DATAMANAGEMENT` (**Can manage data**) or `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) privilege is required. #### Usage guidelines * A JSON map of configuration attributes in `configuration`. The following example shows the configuration attributes: ``` { \"user\":\"DEV_USER\", \"password\":\"TestConn123\", \"role\":\"DEV\", \"warehouse\":\"DEV_WH\" } ``` * If the `policy_type` is `PRINCIPALS`, then `policy_principals` is a required field. * If the `policy_type` is `PROCESSES`, then `policy_processes` is a required field. * If the `policy_type` is `NO_POLICY`, then `policy_principals` and `policy_processes` are not required fields. #### Parameterized Connection Support For parameterized connections that use OAuth authentication, only the same_as_parent and policy_process_options attributes are allowed in the API request. These attributes are not applicable to connections that are not parameterized. * @param createConnectionConfigurationRequest */ public createConnectionConfiguration(createConnectionConfigurationRequest: CreateConnectionConfigurationRequest, _options?: Configuration): Promise { @@ -1767,7 +1932,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.10.0.cl or later Creates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To create a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param createEmailCustomizationRequest */ public createEmailCustomization(createEmailCustomizationRequest: CreateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -1830,7 +1995,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ public createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise { @@ -1838,6 +2003,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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. + * @param createWebhookConfigurationRequest + */ + public createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise { + const result = this.api.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + return result.toPromise(); + } + /** * Version: 9.9.0.cl or later Creates a DBT connection object in ThoughtSpot. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About create DBT connection DBT connection in ThoughtSpot is used by the user to define DBT credentials for cloud . The API needs embrace connection, embrace database name, DBT url, import type, DBT account identifier, DBT project identifier, DBT access token and environment details (or) embrace connection, embrace database name, import type, file_content to create a connection object. To know more about DBT, see ThoughtSpot Product Documentation. * @param connectionName Name of the connection. @@ -1869,13 +2043,13 @@ export class PromiseThoughtSpotRestApi { /** * Version: 9.9.0.cl or later Generate required table and worksheet and import them. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege, along with an existing DBT connection. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following data control privileges may be required: - `CAN_MANAGE_CUSTOM_CALENDAR`(**Can manage custom calendars**) - `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**) - `CAN_MANAGE_WORKSHEET_VIEWS_TABLES` (**Can manage data models**) #### About generate TML Models and Worksheets to be imported can be selected by the user as part of the API. * @param dbtConnectionIdentifier Unique ID of the DBT connection. + * @param modelTables List of Models and their respective Tables Example: \\\'[{\\\"model_name\\\": \\\"model_name\\\", \\\"tables\\\": [\\\"table_name\\\"]}]\\\' * @param importWorksheets Mention the worksheet tmls to import - * @param modelTables List of Models and their respective Tables - * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED + * @param worksheets List of worksheets is mandatory when import_Worksheets is type SELECTED Example: [\\\"worksheet_name\\\"] * @param fileContent 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’ */ - public dbtGenerateTml(dbtConnectionIdentifier: string, importWorksheets: string, modelTables?: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { - const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, importWorksheets, modelTables, worksheets, fileContent, _options); + public dbtGenerateTml(dbtConnectionIdentifier: string, modelTables: string, importWorksheets: string, worksheets?: string, fileContent?: HttpFile, _options?: Configuration): Promise { + const result = this.api.dbtGenerateTml(dbtConnectionIdentifier, modelTables, importWorksheets, worksheets, fileContent, _options); return result.toPromise(); } @@ -2041,7 +2215,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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 * @param identifier Unique id or name of the variable */ public deleteVariable(identifier: string, _options?: Configuration): Promise { @@ -2049,6 +2223,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + public deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise { + const result = this.api.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + /** * Version: 9.2.0.cl or later Allows you to deploy a commit and publish TML content to your ThoughtSpot instance. Requires at least edit access to the objects used in the deploy operation. The API deploys the head of the branch unless a `commit_id` is specified in the API request. If the branch name is not defined in the request, the default branch is considered for deploying commits. For more information, see [Git integration documentation](https://developers.thoughtspot.com/docs/git-integration). * @param deployCommitRequest @@ -2077,7 +2260,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF or PNG file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is PDF. For PDF downloads, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are also available for PNG output. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. + * Version: 9.0.0.cl or later Exports a Liveboard and its visualizations in PDF, PNG, CSV, or XLSX file format. Requires at least view access to the Liveboard. #### Usage guidelines In the request body, specify the GUID or name of the Liveboard. To generate a Liveboard report with specific visualizations, add GUIDs or names of the visualizations. The default `file_format` is CSV. For PDF exports, you can specify additional parameters to customize the page orientation and include or exclude the cover page, logo, footer text, and page numbers. Similar customization options are available for PNG exports. CSV and XLSX exports do not support customization options. **NOTE**: The downloadable file returned in API response file is extensionless. Please rename the downloaded file by typing in the relevant extension. Optionally, you can define [runtime overrides](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_runtime_overrides) to apply to the Answer data. To include unsaved changes in the report, pass the `transient_pinboard_content` script generated from the `getExportRequestForCurrentPinboard` method in the Visual Embed SDK. Upon successful execution, the API returns the report with unsaved changes, including ad hoc changes to visualizations. For more information, see [Liveboard Report API](https://developers.thoughtspot.com/docs/fetch-data-and-report-apis#_liveboard_report_api). **NOTE**: Starting with ThoughtSpot Cloud 10.9.0.cl release, the Liveboard can be exported in the PNG format in the resolution of your choice. To enable this on your instance, contact ThoughtSpot support. When this feature is enabled, the options `include_cover_page`,`include_filter_page` within the `png_options` will not be available for PNG exports. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in CSV format. All visualizations in the Liveboard can be exported as individual CSV files. If multiple visualizations are selected or if the entire Liveboard is exported, the output is returned as a .zip file containing the CSV files for each visualization. **NOTE**: Starting with the ThoughtSpot Cloud 26.2.0.cl release, Liveboards can be exported in XLSX format. All selected visualizations are consolidated into a single Excel workbook (.xlsx), with each visualization placed in its own worksheet (tab). XLSX exports are limited to 255 worksheets (tabs) per workbook. * @param exportLiveboardReportRequest */ public exportLiveboardReport(exportLiveboardReportRequest: ExportLiveboardReportRequest, _options?: Configuration): Promise { @@ -2228,7 +2411,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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. * @param getCustomAccessTokenRequest */ public getCustomAccessToken(getCustomAccessTokenRequest: GetCustomAccessTokenRequest, _options?: Configuration): Promise { @@ -2236,6 +2419,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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 + */ + public getDataSourceSuggestions(getDataSourceSuggestionsRequest: GetDataSourceSuggestionsRequest, _options?: Configuration): Promise { + const result = this.api.getDataSourceSuggestions(getDataSourceSuggestionsRequest, _options); + return result.toPromise(); + } + /** * Version: 9.0.0.cl or later Gets an authentication token and creates a full session in ThoughtSpot for a given user. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret_key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** in the **Develop** > **Customizations** > **Security Settings** page. For more information, see [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable). **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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getFullAccessTokenRequest @@ -2245,6 +2437,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to retrieve existing natural language (NL) instructions for a specific data-model. These instructions guide the AI system in understanding data context and generating more accurate responses when processing natural language queries. #### Usage guidelines To retrieve NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model to retrieve NL instructions The API returns a response object with: - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for natural language processing - `scope`: The scope of the instruction (`GLOBAL`). It can be extended to data-model-user scope in future. #### Instructions Scope - **GLOBAL**: Instructions that apply globally across the system on the given data-model (currently only global instructions are supported) > ###### Note: > * To use this API, the user needs atleast view access on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Use this API to view currently configured instructions before modifying them with `setNLInstructions`. + * @param getNLInstructionsRequest + */ + public getNLInstructions(getNLInstructionsRequest: GetNLInstructionsRequest, _options?: Configuration): Promise { + const result = this.api.getNLInstructions(getNLInstructionsRequest, _options); + return result.toPromise(); + } + /** * Version: 9.0.0.cl or later Gets an authentication token that provides access to a specific metadata object. By default, the token obtained from ThoughtSpot remains valid for 5 mins. You can generate the token for a user by providing a `username` and `password`, or by using the cluster’s `secret key` (for [Trusted authentication](https://developers.thoughtspot.com/docs/?pageid=trusted-auth#trusted-auth-enable)). To generate a `secret_key` on your cluster, the administrator must enable **Trusted authentication** 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. #### Just-in-time provisioning For just-in-time user creation and provisioning, define the following attributes: * `auto_create` * `username` * `display_name` * `email` * `group_identifiers` 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`, the API call will update user properties like display name, email and group assignment. For more information, see [Just-in-time provisioning](https://developers.thoughtspot.com/docs/just-in-time-provisioning). To add a new user and assign privileges, 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 is required. #### Important point to note All options in the token creation APIs changing 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. * @param getObjectAccessTokenRequest @@ -2254,6 +2455,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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 + */ + public getRelevantQuestions(getRelevantQuestionsRequest: GetRelevantQuestionsRequest, _options?: Configuration): Promise { + const result = this.api.getRelevantQuestions(getRelevantQuestionsRequest, _options); + return result.toPromise(); + } + /** * Version: 9.0.0.cl or later Retrieves the current configuration details of the cluster. If the request is successful, the API returns a list configuration settings applied on the cluster. Requires `ADMINISTRATION`(**Can administer ThoughtSpot**) privilege to view these complete configuration settings of the cluster. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the `SYSTEM_INFO_ADMINISTRATION` (**Can view system activities**) privilege is required. This API does not require any parameters to be passed in the request. */ @@ -2332,7 +2542,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be parameterized. + * Parameterize fields in metadata objects. Version: 10.9.0.cl or later Allows parameterizing fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows parameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be parameterized. For Connection Config, the only supported field name is: * impersonate_user * @param parameterizeMetadataRequest */ public parameterizeMetadata(parameterizeMetadataRequest: ParameterizeMetadataRequest, _options?: Configuration): Promise { @@ -2404,6 +2614,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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. + * @param searchCommunicationChannelPreferencesRequest + */ + public searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest: SearchCommunicationChannelPreferencesRequest, _options?: Configuration): Promise { + const result = this.api.searchCommunicationChannelPreferences(searchCommunicationChannelPreferencesRequest, _options); + return result.toPromise(); + } + /** * Version: 9.2.0.cl or later Gets Git repository connections configured on the ThoughtSpot instance. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance on your instance, the `CAN_SETUP_VERSION_CONTROL` (**Can set up version control**) privilege. * @param searchConfigRequest @@ -2513,7 +2732,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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 * @param searchVariablesRequest */ public searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise> { @@ -2521,6 +2740,34 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + public searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise { + const result = this.api.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + + /** + * 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) + * @param sendAgentMessageRequest + */ + public sendAgentMessage(conversationIdentifier: string, sendAgentMessageRequest: SendAgentMessageRequest, _options?: Configuration): Promise { + const result = this.api.sendAgentMessage(conversationIdentifier, sendAgentMessageRequest, _options); + return result.toPromise(); + } + + /** + * Version: 10.13.0.cl or later This API allows users to initiate or continue an agent (Spotter) conversation by submitting one or more natural language messages. To use this API, the user must have access to the relevant conversational session (via conversation_identifier) and submit at least one message. #### Usage guidelines To initiate or continue a conversation, the request must include: - `conversation_identifier`: a unique session ID for continuity and message tracking - `messages`: an array of one or more text messages, each with a value and type Additionally, user can specify what tool can be included `conversation_settings` parameter, which supports: - `enable_contextual_change_analysis` (default: false) - `enable_natural_language_answer_generation` (default: true) - `enable_reasoning` (default: false) If the request is valid, the API returns a stream of messages in real time, including: - `ack`: confirms receipt of the request - `text / text-chunk`: content chunks, optionally formatted (e.g., markdown) - `answer`: the final structured response with metadata and analytics - `error`: if a failure occurs - `notification`: notification messages for operation being performed > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. > * The streaming protocol uses Server-Sent Events (SSE) + * @param sendAgentMessageStreamingRequest + */ + public sendAgentMessageStreaming(sendAgentMessageStreamingRequest: SendAgentMessageStreamingRequest, _options?: Configuration): Promise { + const result = this.api.sendAgentMessageStreaming(sendAgentMessageStreamingRequest, _options); + return result.toPromise(); + } + /** * Version: 10.4.0.cl or later Allows sending a follow-up message to an ongoing conversation within the context of the metadata model. Requires at least view access to the metadata object specified in the request. #### Usage guidelines The API requires you to specify the `conversation_identifier` in the request path, and a `metadata_identifier` and `message` string in the request body. If the API request is successful, ThoughtSpot returns the session ID, tokens used in the conversation, and visualization type. > ###### Note: > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * This endpoint requires Spotter - please contact ThoughtSpot support to enable Spotter on your cluster. * @param conversationIdentifier Unique identifier of the conversation. @@ -2531,6 +2778,15 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * Version: 10.15.0.cl or later This API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses. #### Usage guidelines To set NL instructions for a data-model, the request must include: - `data_source_identifier`: The unique ID or name of the data-model for which to set NL instructions - `nl_instructions_info`: An array of instruction objects, each containing: - `instructions`: Array of text instructions for the LLM - `scope`: The scope of the instruction (`GLOBAL`). Currently only `GLOBAL` is supported. It can be extended to data-model-user scope in future. The API returns a response object with: - `success`: Boolean indicating whether the operation was successful #### Instructions Scope - **GLOBAL**: Instructions that apply globally for that data-model across the system > ###### Note: > * To use this API, the user needs either edit access or SPOTTER_COACHING_PRIVILEGE on the data-model and they must use corresponding org related bearerToken where the data-model exists. > * This endpoint is currently in Beta. Breaking changes may be introduced before the endpoint is made Generally Available. > * Available from version 10.15.0.cl and later. > * This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster. > * Instructions help improve the accuracy and relevance of AI-generated responses for the specified data-model. + * @param setNLInstructionsRequest + */ + public setNLInstructions(setNLInstructionsRequest: SetNLInstructionsRequest, _options?: Configuration): Promise { + const result = this.api.setNLInstructions(setNLInstructionsRequest, _options); + return result.toPromise(); + } + /** * Version: 9.0.0.cl or later Allows sharing one or several metadata objects with users and groups in ThoughtSpot. Requires edit access to the metadata object. The API endpoint allows sharing only the following types of metadata objects: * Liveboards * Visualizations * Answers * Worksheets * Views * Connections You can provide `READ_ONLY` or `MODIFY` access when sharing an object with another user or group. With `READ_ONLY` access grants view access to the shared object, whereas `MODIFY` provides edit access. To prevent a user or group from accessing the shared object, specify the GUID or name of the principal and set `shareMode` to `NO_ACCESS`. * @param shareMetadataRequest @@ -2559,7 +2815,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection the field type is always `CONNECTION_PROPERTY`. We use the field_name in this case to specify the exact property of a connection which needs to be unparameterized. + * Remove parameterization from fields in metadata objects. Version: 10.9.0.cl or later Allows removing parameterization from fields in metadata objects in ThoughtSpot. Requires appropriate permissions to modify the metadata object. The API endpoint allows unparameterizing the following types of metadata objects: * Logical Tables * Connections * Connection Configs For a Logical Table the field type must be `ATTRIBUTE` and field name can be one of: * databaseName * schemaName * tableName For a Connection or Connection Config, the field type is always `CONNECTION_PROPERTY`. In this case, field_name specifies the exact property of the Connection or Connection Config that needs to be unparameterized. For Connection Config, the only supported field name is: * impersonate_user * @param unparameterizeMetadataRequest */ public unparameterizeMetadata(unparameterizeMetadataRequest: UnparameterizeMetadataRequest, _options?: Configuration): Promise { @@ -2614,7 +2870,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. + * Version: 10.12.0.cl or later Updates a connection configuration 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. #### Supported operations This API endpoint lets you perform the following operations in a single API request: * Edit the name or description of the configuration * Edit the configuration properties * Edit the `policy_type` * Edit the type of authentication * Enable or disable a configuration #### Parameterized Connection Support For parameterized oauth based connections, only the `same_as_parent` and `policy_process_options` attributes are allowed. These attributes are not applicable to connections that are not parameterized. **NOTE**: When updating a configuration where `disabled` is `true`, you must reset `disabled` to `true` in your update request payload. If not explicitly set again, the API will default `disabled` to `false`. * @param configurationIdentifier Unique ID or name of the configuration. * @param updateConnectionConfigurationRequest */ @@ -2624,7 +2880,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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\":[ ] } ``` * @param connectionIdentifier Unique ID or name of the connection. * @param updateConnectionV2Request */ @@ -2663,7 +2919,7 @@ export class PromiseThoughtSpotRestApi { } /** - * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"ctaButtonBgColor\": \"#444DEA\", \"ctaTextFontColor\": \"#FFFFFF\", \"primaryBgColor\": \"#D3DEF0\", \"hideMobileAppNudge\": false, \"fontFamily\" : \"\", \"hideProductName\" : false, \"hideFooterPhone\" : false, \"hideFooterAddress\" : false, \"hidePrivacyPolicy\" : false, \"hideManageNotification\" : false, \"hideTsVocabularyDefinitions\": false, \"hideNotificationStatus\" : false, \"hideErrorMessage\": false, \"hideUnsubscribeLink\" : false, \"hideModifyAlert\": false, \"textTransform\": \"\", \"replacementValueForLiveboard\": \"LB dashboard\", \"replacementValueForAnswer\": \"Answer dashboard\", \"replacementValueForSpotIQ\": \"SpotIQ dashboard\", \"logoUrl\":\"\", \"productName\":\"ThoughtSpot\", \"footerPhone\":\"(800) 508-7008\", \"footerAddress\":\"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"companyWebsiteUrl\":\"\", \"companyPrivacyPolicyUrl\":\"\" } } ``` + * Version: 10.12.0.cl or later Updates a customization configuration for the notification email. #### 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. #### Usage guidelines To update a custom configuration pass these parameters in your API request: - A JSON map of configuration attributes `template_properties`. The following example shows a sample set of customization configuration: ``` { { \"cta_button_bg_color\": \"#444DEA\", \"cta_text_font_color\": \"#FFFFFF\", \"primary_bg_color\": \"#D3DEF0\", \"logo_url\": \"https://storage.pardot.com/710713/1642089901EbkRibJq/TS_fullworkmark_darkmode.png\", \"font_family\": \"\", \"product_name\": \"ThoughtSpot\", \"footer_address\": \"444 Castro St, Suite 1000 Mountain View, CA 94041\", \"footer_phone\": \"(800) 508-7008\", \"replacement_value_for_liveboard\": \"Dashboard\", \"replacement_value_for_answer\": \"Chart\", \"replacement_value_for_spot_iq\": \"AI Insights\", \"hide_footer_phone\": false, \"hide_footer_address\": false, \"hide_product_name\": false, \"hide_manage_notification\": false, \"hide_mobile_app_nudge\": false, \"hide_privacy_policy\": false, \"hide_ts_vocabulary_definitions\": false, \"hide_error_message\": false, \"hide_unsubscribe_link\": false, \"hide_notification_status\": false, \"hide_modify_alert\": false, \"company_website_url\": \"https://your-website.com/\", \"company_privacy_policy_url\" : \"https://link-to-privacy-policy.com/\", \"contact_support_url\": \"https://link-to-contact-support.com/\", \"hide_contact_support_url\": false } } ``` * @param updateEmailCustomizationRequest */ public updateEmailCustomization(updateEmailCustomizationRequest: UpdateEmailCustomizationRequest, _options?: Configuration): Promise { @@ -2759,7 +3015,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -2769,7 +3025,7 @@ export class PromiseThoughtSpotRestApi { } /** - * 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 * @param updateVariableValuesRequest */ public updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise { @@ -2777,6 +3033,16 @@ export class PromiseThoughtSpotRestApi { return result.toPromise(); } + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + public updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise { + const result = this.api.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + return result.toPromise(); + } + /** * Version: 10.10.0.cl or later Validates the email customization 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 `DEVELOPER` (**Has developer privilege**) privilege is required. **NOTE**:This endpoint in currently in beta. Contact ThoughtSpot support to enable this on your instance. */ @@ -2933,7 +3199,7 @@ export class PromiseVariableApi { } /** - * 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. 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 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, introduced in 10.15.0.cl 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 formula variables (defaults to null) The operation will fail if: * The user lacks required permissions * The variable name already exists * The variable type is invalid * @param createVariableRequest */ public createVariable(createVariableRequest: CreateVariableRequest, _options?: Configuration): Promise { @@ -2942,7 +3208,7 @@ export class PromiseVariableApi { } /** - * 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 * @param identifier Unique id or name of the variable */ public deleteVariable(identifier: string, _options?: Configuration): Promise { @@ -2951,7 +3217,7 @@ export class PromiseVariableApi { } /** - * 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 * @param searchVariablesRequest */ public searchVariables(searchVariablesRequest: SearchVariablesRequest, _options?: Configuration): Promise> { @@ -2960,7 +3226,7 @@ export class PromiseVariableApi { } /** - * 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 * @param identifier Unique id or name of the variable to update. * @param updateVariableRequest */ @@ -2970,7 +3236,7 @@ export class PromiseVariableApi { } /** - * 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 * @param updateVariableValuesRequest */ public updateVariableValues(updateVariableValuesRequest: UpdateVariableValuesRequest, _options?: Configuration): Promise { @@ -3084,3 +3350,59 @@ export class PromiseVersionControlApi { +import { ObservableWebhooksApi } from './ObservableAPI'; + +import { WebhooksApiRequestFactory, WebhooksApiResponseProcessor} from "../apis/WebhooksApi"; +export class PromiseWebhooksApi { + private api: ObservableWebhooksApi + + public constructor( + configuration: Configuration, + requestFactory?: WebhooksApiRequestFactory, + responseProcessor?: WebhooksApiResponseProcessor + ) { + this.api = new ObservableWebhooksApi(configuration, requestFactory, responseProcessor); + } + + /** + * 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. + * @param createWebhookConfigurationRequest + */ + public createWebhookConfiguration(createWebhookConfigurationRequest: CreateWebhookConfigurationRequest, _options?: Configuration): Promise { + const result = this.api.createWebhookConfiguration(createWebhookConfigurationRequest, _options); + return result.toPromise(); + } + + /** + * 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. + * @param deleteWebhookConfigurationsRequest + */ + public deleteWebhookConfigurations(deleteWebhookConfigurationsRequest: DeleteWebhookConfigurationsRequest, _options?: Configuration): Promise { + const result = this.api.deleteWebhookConfigurations(deleteWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + + /** + * 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. + * @param searchWebhookConfigurationsRequest + */ + public searchWebhookConfigurations(searchWebhookConfigurationsRequest: SearchWebhookConfigurationsRequest, _options?: Configuration): Promise { + const result = this.api.searchWebhookConfigurations(searchWebhookConfigurationsRequest, _options); + return result.toPromise(); + } + + /** + * 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. + * @param webhookIdentifier Unique ID or name of the webhook configuration. + * @param updateWebhookConfigurationRequest + */ + public updateWebhookConfiguration(webhookIdentifier: string, updateWebhookConfigurationRequest: UpdateWebhookConfigurationRequest, _options?: Configuration): Promise { + const result = this.api.updateWebhookConfiguration(webhookIdentifier, updateWebhookConfigurationRequest, _options); + return result.toPromise(); + } + + +} + + + diff --git a/sdks/typescript/utils/config.ts b/sdks/typescript/utils/config.ts index 8983c5982..8dea49d25 100644 --- a/sdks/typescript/utils/config.ts +++ b/sdks/typescript/utils/config.ts @@ -34,12 +34,9 @@ const createAdditionalHeadersMiddleware = (additionalHeaders: Record { - Object.keys(additionalHeaders).forEach( - (headerName: string) => { - const headerValue = additionalHeaders[headerName]; - requestContext.setHeaderParam(headerName, headerValue); - } - ); + Object.entries(additionalHeaders).forEach(([headerName, headerValue]) => { + requestContext.setHeaderParam(headerName, headerValue); + }); return Promise.resolve(requestContext); }, /**